2012-10-02 15 views
6

साथ ऐसा नहीं है कि jQuery के trigger() केवल ईवेंट हैंडलर्स कि jQuery के साथ बंधे हुए थे चलाता है लगता है। मेरे पास कुछ मॉड्यूल हैं जो मूल ब्राउज़र ईवेंट बाइंडिंग का उपयोग करते हैं। https://stackoverflow.com/a/2676527 से कोड का उपयोग करना मेरे लिए काम करता है, लेकिन मुझे आश्चर्य है कि jQuery में कुछ बनाया गया है जो ऐसा करेगा?उत्प्रेरक रियल घटना jQuery

टिप्पणियों से अद्यतन: स्पष्ट रूप से यह बटन पर क्लिक ईवेंट के लिए काम करता है। लेकिन चयन बक्से पर परिवर्तन की घटनाओं के लिए: http://jsfiddle.net/qxpXV/2/

रिकॉर्ड के लिए: अन्य पुस्तकालय हैकिंग jQuery के साथ अपने बाइंडिंग करने के लिएtrigger() काम पड़ता है, लेकिन मैं नहीं चाहता कि वास्तव में ऐसा करना चाहते हैं।

+1

@singpolyma मूल ब्राउज़र ईवेंट बाध्यकारी से आपका क्या मतलब है? '.addEventListener()'? मैं ऐसे हैंडलर का आह्वान करने में सक्षम हूं: http://jsfiddle.net/mnrUt/ एचएम, भले ही मैं कोड को 'वनेंट' एचटीएमएल विशेषता के माध्यम से निर्दिष्ट करता हूं, jQuery का '.trigger() 'अभी भी उस कोड को चलाने में सक्षम है : http://jsfiddle.net/mnrUt/1/ –

+0

@adeneo ऊपर मेरे दो डेमो देखें। –

+0

@ ŠimeVidas - ऐसा लगता है कि यह काम करता है, हमेशा यह काम नहीं करता है क्योंकि दस्तावेज़ कहते हैं कि यह jQuery के साथ जुड़ी घटनाओं के लिए है, और वास्तव में परीक्षण करने के लिए वास्तव में कभी नहीं मिला! – adeneo

उत्तर

1

आप किसी ईवेंट को मैन्युअल रूप से फायरिंग/प्रेषण (ब्राउजर,/dispatchEvent पर सीधे) DOM तत्व पर कर सकते हैं। कोड from this answer इवेंट प्रेषण को संभालेगा, आपको बस इसे DOM तत्व के विरुद्ध निष्पादित करने की आवश्यकता होगी, न कि jQuery wrapper।

+0

आप देखेंगे कि मैं अपने प्रश्न में बहुत ही समान कोड से लिंक करता हूं :) – singpolyma

+0

इसे स्वीकार करना क्योंकि यह एकमात्र तरीका प्रतीत होता है। jQuery बस इसका समर्थन नहीं करता है, जहां तक ​​मैं कह सकता हूं :) – singpolyma

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