jQuery 1.6 में ईवेंट प्रतिनिधिमंडल के साथ, आप उन घटनाओं का जवाब दे सकते हैं जो एक सामान्य माता-पिता को बुलबुले हुए हैं।jQuery कॉल इवेंट प्रतिनिधि चर निरंतर कॉल के साथ
एक नमूना कार्यान्वयन इस तरह है:
(function($){
$.fn.myeventhandler = function() {
return this.delegate('a.next, a.prev', 'click customEvent', function (event) {
var target=$(event.target);
var bar = null;
if('click' == event.type) { /*~[ call this 'a' ]~*/
// handle the click event
$('#next-element').animate({width:'200px'},1300,function(){
bar = 'value1';
$('#next-element').animate({width:'100px'},1300,function(){
bar = 'value2';
console.log(bar);
});
});
} else if('customEvent' == event.type) { /*~[ call this 'b' ]~*/
// handle the customEvent event
$('#my-element').animate({height:'200px'},1300,function(){
bar = 'my-event1';
console.log(bar);
});
}
return false;
});
}
})(jQuery);
संरचना इस प्रकार का वास्तव में अच्छी तरह से जब आप कई ईवेंट ट्रिगर करता है आप एक पृष्ठ पर बाध्य कर दिया है करना चाहते हैं काम कर सकते हैं। हालांकि, मैंने एक उत्सुक व्यवहार देखा है और सोच रहा है कि कोई मुझे निम्नलिखित के दायरे पर प्रकाश डाल सकता है:
यदि आप 'ए' से पहले एक चर 'var bar;
' परिभाषित करते हैं और इसे 'ए' और 'ए' में उपयोग करते हैं निष्पादित करने में लंबा समय लगता है, फिर यदि 'क्लिक' दूसरी बार ट्रिगर किया जाता है, तो क्या 'बार' चर वैल्यू को फिर से सौंप दिया जाएगा या कोई नया बनाया जाएगा?
सवाल का कारण यह है कि मुझे एक 'अधूरा' एनीमेशन मिला है जिसमें एनीमेशन को पूरा होने में 1.3 सेकंड लगते हैं। यदि मैं लगातार दो क्लिक ईवेंट ट्रिगर करता हूं, तो लक्ष्य और प्रकार सही ढंग से सेट होते हैं, लेकिन दूसरी एनीमेशन पहले को प्रभावित कर रहा है और दो स्कॉप्स एक दूसरे के लिए उपलब्ध प्रतीत होते हैं।
मैंने अभी तक एनीमेशन समाप्त नहीं किया है, इसलिए मुझे जेएसफ़िल्ड में ऑनलाइन रखने के लिए एक कामकाजी सेट नहीं मिला है, लेकिन यहां गुंजाइश के लिए अंगूठे का कोई नियम है कि मुझे शोध करना चाहिए या उपलब्ध स्कोप का कुछ स्पष्ट स्पष्टीकरण किसी को मिल सकता है?
संपादित करें: ऊपर में, मैं एक स्थिति है कि मैं क्या उपयोग कर रहा हूँ करने के लिए इसी में जोड़ दिया है। उपरोक्त सरलीकृत मामले में, 'बार' का मान अभी भी लगातार 2 कॉल पर अपेक्षित मूल्य रखता है, लेकिन अधिक जटिल मामले में मैं (अभी भी) के माध्यम से काम कर रहा हूं, जब तक कि मैं विशेष रूप से कॉलबैक फ़ंक्शन में पैरामीटर पास नहीं करता, अभी भी है ऐसी स्थिति जो 2 लगातार कॉल को पैरामीटर के मान को बदलने की अनुमति दे रही है, जैसे कि कॉलबैक बाद के कॉल द्वारा बनाए गए मान को देखता है - वह मान नहीं जो तर्कसंगत रूप से अपने ट्रिगर कॉल में सेट किया गया था। यदि कोई सरलीकृत उदाहरण पर इस प्रभाव को दोहरा सकता है, तो मैं इसकी सराहना करता हूं। मैं अपने कार्यों को झुका रहा हूं ताकि जेएसफ़िल्ड उत्पन्न हो सके जो इसे दोहराता है।
धन्यवाद, एई
'ए' क्या है? ? ? –
हाय, इंटरस्टेलर_Coder, टिप्पणियों में 'ए' पहले को संदर्भित करता है यदि() कोड का ब्लॉक और 'बी' कोड के 'अन्य' ब्लॉक को संदर्भित करता है - क्षमा करें अगर टिप्पणियां अनुपयोगी थीं - यह बेहतर उदाहरण देने के लिए एक अच्छा उदाहरण क्या है ? – MyStream