2010-06-04 12 views
18

मैं HTML उत्पन्न में फ़ायर्फ़ॉक्स में परिभाषित किया गया है नहीं है, लेकिन ठीक:घटना jQuery का उपयोग कर क्रोम और IE

$("<a />") 
    .append("demo") 
    .click(function() { DemoFunc(event, value.Id) }) 

यह क्रोम और IE8 के लिए एकदम सही काम करता है, लेकिन फ़ायर्फ़ॉक्स में मैं एक त्रुटि मिली: "घटना से परिभाषित नहीं है "। मैं इस तरह कोड बदल दिया है: क्रोम और IE के लिए

.attr("onclick", "DemoFunc(event, " + value.Id + ")") 

यह Firefox के लिए काम करता है, लेकिन नहीं।

DemoFunc = function (e, assocGroupId) { 
    var target = (e.target) ? $(e.target) : $(e.srcElement); 
    .... 
} 

क्यों !? मदद!!

उत्तर

36

आईई और क्रोम में, eventwindow.event पर हल हो रहा है। फ़ायरफ़ॉक्स में यह गुण नहीं है और इसके बजाय एक पैरामीटर के रूप में इसे पास करके एक ईवेंट हैंडलर फ़ंक्शन में एक ईवेंट प्रदान करता है।

$("<a />") 
    .append("demo") 
    .click(function (evt) { DemoFunc(evt, value.Id) }); 
+0

धन्यवाद, टिम, बहुत कुछ! आपने मेरा समय बचाया! :-) – podeig

+0

दूसरे शब्दों में .. सुनिश्चित करें कि 'evt' या जो भी आप कॉल में उपयोग कर रहे हैं वह फ़ंक्शन() भाग में भी दिखाई देता है। Http://stackoverflow.com/questions/20522887/referenceerror-event-is-not-defined-error-in-firefox में वही समस्या – Malachi

1

आप संरचित है अपने कोड के आसपास नहीं बल्कि jQuery घटना से मूल घटना के साथ काम करने के लिए, आप evt.originalEvent उपयोग कर सकते हैं देशी उल्लेख करने के लिए: jQuery सभी ब्राउज़रों में एक घटना वस्तु पैरामीटर प्रदान करके आप के लिए इस अंतर को सार घटना।

संबंधित मुद्दे