2011-08-05 22 views
10

मैंने एक jquery ui-plugin विकसित किया है और वास्तव में इन तरीकों का उपयोग करने के लिए समझ नहीं सकता है। jQuery ui प्रलेखन मैं घटनाओं को गति प्रदान करने _trigger का उपयोग करना चाहिए के अनुसार, इस की अनुमति देता है संचालकोंjquery ui _trigger बनाम ट्रिगर

$("#id").pluginname({ 
    click: function(){ 
     //called when clicked 
    } 
}); 

तरह प्लगइन के साथ प्रारंभ करने के लिए लेकिन अगर मैं बाद में इस घटना के लिए अधिक श्रोताओं अनुलग्न करना चाहते हैं मैं नहीं कर सकता ऐसा करने के लिए कोई रास्ता खोजें। मैं jquery bind का उपयोग करने की कोशिश कर रहा हूं, लेकिन यह काम नहीं करता है। उदाहरण:

$("#id").bind("click", function(){ 
    //This does not get fired on click if using _trigger 
}) 

एकमात्र समाधान मैं अब तक दोनों की आग में है, लेकिन यह एक तरह से अजीब लगता है। मेरे कोड काम करने के लिए निम्न करना होगा:

$("#id").pluginname({ 
    click: function(){ 
    //called when my plugin uses this._trigger('click') 
    } 
}).bind(function(){ 
    //called when my plugin uses this.element.trigger('click') 
}); 

मैं कस्टम घटनाओं का उपयोग कर रहा है, लेकिन नहीं सोचा था कि इस सवाल पूछने के लिए प्रासंगिक था। _trigger() का उपयोग करते समय ईवेंट चेनिंग का उपयोग करने के बारे में किसी को भी कोई विचार है?

उत्तर

10

आप इस तरह बाँध चाहिए:

$("#id").bind("pluginnameclick", function(){ 
+0

हाय से साफ नहीं हो निकल करने के लिए है, मैं इस प्राप्त करने में सक्षम नहीं कर रहा हूँ काम करने के लिए, क्या आपके पास यह बेहतर समझने के लिए पढ़े जा सकने वाले किसी भी दस्तावेज के लिए कोई संदर्भ है? – Tommy

+0

हम्म। क्षमा करें, किसी को याद नहीं है। इसे आज़माएं - http://www.erichynds.com/jquery/tips-for-developing-jquery-ui-widgets/ ("संवाद" के लिए खोजें) – bullgare

+6

हाय, आपके उत्तर के लिए धन्यवाद। सौभाग्य से मुझे एक पृष्ठ पर एक टिप्पणी मिली जिसने कहा कि घटना का नाम कम मामले में बदल गया था। इस मामले में मेरा उदाहरण यह नहीं पकड़ा कि मेरे पास ऊंट केस नाम के साथ एक कार्यक्रम था। हालांकि इसका मतलब है कि आपका सुझाव सही है। इस पर मेरी मदद करने के लिए बहुत बहुत धन्यवाद। – Tommy

4

आप this._on और this._trigger का उपयोग करते हैं चाहिए ताकि घटनाओं सेशन साफ ​​हो जब विजेट को नष्ट करने।

अन्यथा आप घटनाओं अपने आप को या अन्यथा विजेट ब्राउज़र की कचरा संग्रहण

आशा है कि यह आपके प्रश्न के उत्तर

+0

बस सोच रहा है कि इसके आसपास कोई दस्तावेज है या नहीं? – Giraldi