2013-06-19 14 views
9

मैं jquery के तैयार फ़ंक्शन में शरीर के लिए एक कस्टम इवेंट हैंडलर संलग्न कर रहा हूं। तुरंत बाद में, मैं उस कस्टम घटना को सफलतापूर्वक ट्रिगर कर रहा हूं।jquery - ट्रिगर कस्टम इवेंट

$(function(){ 
    $("body").on("test", function(){ 
     alert("test triggered"); 
    } 
    $("body").trigger("test"); 
} 

हालांकि, जब मैं इसे कंसोल में ट्रिगर करता हूं तो कुछ भी नहीं होता है। क्यूं कर?

+0

सिंटेक्स त्रुटि ... – Musa

+0

.on - चयनित तत्वों में एक या अधिक घटनाओं के लिए एक ईवेंट हैंडलर फ़ंक्शन संलग्न करें। यहां घटना क्या है? – zod

+2

@dementic कृपया – Musa

उत्तर

5

सबसे पहले आप में सिंटेक्स त्रुटि

$(function(){ 
    $("body").on("test", function(){ 
     alert("test triggered"); 
    }); < ---- Missing this 
    $("body").trigger("test"); 
}); 

दूसरी बात आप कंसोल से घटना ट्रिगर नहीं कर सकता है, $(function() {});रूपों को बंद करने और आप के रूप में उनके अंदर किसी भी तरीके की पहुंच नहीं होगी

इसके लिए काम करने की अपेक्षा करने के लिए, अपनी स्क्रिप्ट फ़ाइल में डीबग पॉइंट डालें और फिर ईवेंट को ट्रिगर करने का प्रयास करें। यह अब कार्य करता है क्योंकि घटनाएं दायरे में हैं।

+3

सुनिश्चित करें कि आप कर सकते हैं। '$ (" बॉडी ") निष्पादित करना। ट्रिगर (" परीक्षण "); कंसोल में काम करेगा। यह क्यों काम नहीं करेगा? '$' एक वैश्विक चर है। –

+0

वाक्यविन्यास त्रुटि पर मेरी माफ़ी। यह नहीं पता था कि एक ईवेंट श्रोता अपने बंद होने के बाहर होने वाली घटना नहीं सुन पाएगा। धन्यवाद! – JJK

4

ऐसा लगता है कि आपका कोड सही रूप से स्वरूपित नहीं है। पुष्टि करने के लिए अपने डीबग कंसोल की जांच करें।

आप इस कोशिश कर सकते हैं:

$(function(){ 
    $("body").on("test", function(){ 
     alert("test triggered"); 
    }); 
    $("body").trigger("test"); 
} 
संबंधित मुद्दे