क्या jQuery के साथ एक प्रतिनिधि ईवेंट हैंडलर मैन्युअल रूप से ट्रिगर करने का कोई तरीका है?मैं jQuery के साथ एक प्रतिनिधि कार्यक्रम मैन्युअल रूप से कैसे ट्रिगर करूं?
लें निम्न उदाहरण कोड:
<div class="container">
<input type="button" value="Hello">
<span class="output"></span>
</div>
<script>
$('.container')
.on('click', '[type=button]', function(e) {
$(e.delegateTarget).find('.output').text($(this).val());
})
.find('[type=button]').triggerHandler('click');
</script>
(ऑनलाइन: http://jsfiddle.net/TcHBE/)
मैं, उम्मीद कर रहा था कि इस काम करेगा, और पाठ "हैलो" वास्तव में बटन पर क्लिक बिना सी अवधि में प्रकट होता है, लेकिन यह नहीं करता है
मैं हैंडलर के अंदर e.delegateTarget
का उपयोग कर रहा हूं, क्योंकि .ouput
तत्व .container
के अंदर किसी स्थान के अलावा बटन के ज्ञात संबंध में नहीं होगा। यही कारण है कि मैं पहले स्थान पर एक प्रतिनिधि कार्यक्रम हैंडलर का उपयोग कर रहा हूं।
अद्यतन:
इसके अलावा, मैं, triggerHandler
उपयोग कर रहा हूँ क्योंकि घटना वास्तविक कोड मैं को गति प्रदान नहीं करना चाहते में एक डिफ़ॉल्ट व्यवहार है। (वास्तविक कोड में यह घटना की कस्टम घटना hide
है, लेकिन पेज लोड पर ईवेंट हैंडलर ट्रिगर करते समय मैं वास्तव में मोडल को छिपाना नहीं चाहता)।
मैं हैंडलर को नामित फ़ंक्शन में निकाल सकता हूं और इसे सीधे कॉल कर सकता हूं, लेकिन e.delegateTarget
के उपयोग के कारण, इससे यह और अधिक जटिल हो जाएगा।
वास्तविक समस्या दिखाने के लिए अपना कोड अपडेट करें। यह स्पष्ट नहीं है कि आप अन्य ईवेंट हैंडलर या डिफ़ॉल्ट कार्रवाई को होने से रोकना चाहते हैं। – Prinzhorn