मैं प्रश्न के लिए इस परीक्षण कोड दिया है: http://jsfiddle.net/5phqm/1/क्यों jQuery का ट्रिगर हैडलर() इनलाइन घटनाओं को रोकता नहीं है?
जहां तक मैं समझता हूँ, अगर jQuery के triggerHandler()
डिफ़ॉल्ट ब्राउज़र व्यवहार से बचाता है, तो देशी जावास्क्रिप्ट ईवेंट के कारण नहीं किया जाएगा और संभाला (और उस में addEventListener()
के लिए सच है मेरी कोड), लेकिन टैग की विशेषता onclick=""
के माध्यम से जोड़ा गया इनलाइन ईवेंट वैसे भी ट्रिगर किया जाएगा! ऐसा क्यों होता है? क्या मैं ब्राउज़र में ट्रिगर करने वाली घटनाओं के बारे में कुछ गलत समझ रहा हूं?
इसके लायक होने के लिए मैं हमेशा सीएसएस नियमों के व्यवहार के पैटर्न के रूप में इस बारे में सोचता हूं: इन-लाइन कोड 'हेड' में मिले कोड को ओवरराइड करता है जो बदले में बाहरी स्क्रिप्ट में पाए गए कोड को ओवरराइड करता है। आप बस 'RemoveAttr (' onclick ') 'हटा सकते हैं। –
यह प्रत्यक्ष उत्तर नहीं है लेकिन jQuery वेबसाइट पर वे कहते हैं कि वे इनलाइन ईवेंट हैंडलर के साथ समस्याओं पर प्रयास नहीं करते हैं: http://docs.jquery.com/Won't_Fix#Inline_Event_Handlers। मुझे यह जानने में दिलचस्पी होगी कि आपका कोड ऐसा क्यों व्यवहार करता है, लेकिन मुझे नहीं लगता कि इसके लिए एक फिक्स होगा (यदि आपको यह एक बग मिलती है)। – pimvdb