द्वारा डीओएम में जोड़े गए तत्वों पर उपयोगकर्ता क्रियाओं को स्वचालित रूप से पंजीकृत करता है AJAX वेब एप्लिकेशन के लिए जिसमें कई स्क्रीन और नेविगेशन होते हैं, div या लिंक या बटन के लिए ईवेंट हैंडलर संलग्न करने के लिए, हम कोड जैसे कोड कर सकते हैं :jQuery स्वचालित रूप से ईवेंट हैंडलर को अमेक्स प्रतिक्रिया
//Using $.on inside Ajax success handler
$("#container").on("click", "#selector", function(event){
});
यह दृष्टिकोण काम नहीं करेंगे कंटेनर डोम में नहीं मौजूद है है। यह काम करने के लिए, कंटेनर के रूप में दस्तावेज़ या शरीर का उपयोग करना होगा, प्रदर्शन अच्छा नहीं हो सकता।
अजाक्स सफलता हैंडलर में कोड की कई पंक्तियां हो सकती हैं। बेहतर ढंग से व्यवस्थित करने के लिए, एक समारोह के लिए कोड के लिए कदम और अजाक्स सफलता हैंडलर में है कि समारोह कॉल कर सकते हैं। लेकिन हमें सभी क्रमिकताओं और संयोजनों के लिए कई पंजीकरण कार्यक्रम कार्य करना होगा।
फ़ंक्शन कोड क्लटरिंग पंजीकृत करें।
यदि ईवेंट हैंडलर पहले ही पंजीकृत हो चुका है, तो फिर से पंजीकरण करने से दो हैंडलर भी होंगे। से रजिस्टर संयुक्त राष्ट्र तो हम करने के लिए है और रजिस्टर (या केवल देते हैं, तो पहले से ही जुड़ी नहीं) - प्रदर्शन समस्या के बारे में सुनिश्चित नहीं हैं।
किसी भी विकल्प?
मैं निम्नलिखित की सोच रहा हूँ:
- कंटेनर, लक्ष्य का एक नक्शा बनाए रखें, और एक मॉड्यूल के लिए एक ही स्थान पर ईवेंट हैंडलर क्लिक करें।
AJAX पूर्ण वैश्विक ईवेंट हैंडलर में, यदि xhr.responseHTML में कंटेनर है, तो तत्वों को लक्षित करने के लिए ईवेंट हैंडलर संलग्न करें (केवल संलग्न होने पर ही संलग्न करें)।
$(document).ajaxComplete(function(e, xhr, settings){ for(ind in clickEventListeners){eventlistner = clickEventListeners[ind]; if($(eventlistner.container,xhr.responseHTML).length > 0){ $(eventlistner.target).on("click",function(){ eventlistner.processor(this); }); } } });
पेशेवरों: एक मॉड्यूल के लिए एक ही स्थान पर प्रलेखित सभी ईवेंट हैंडलर्स। प्रत्येक AJAX सफलता हैंडलर के लिए कोई कोड cluttering।
विपक्ष: मुझे यकीन नहीं है कि कोई है या नहीं।
कृपया कोई सुझाव दें या नहीं।
अधिक स्पष्टीकरण – Jesse
ग्रेट उत्तर और अच्छे संदर्भ लिंक प्रदान करने के लिए अद्यतन प्रतिक्रिया। +1 –
$ ("# कंटेनर")। प्रतिनिधि ("# चयनकर्ता", "क्लिक करें" ... प्रदर्शन में सुधार करना चाहिए। कम घटनाएं # कंटेनर तक बबल हो जाएंगी और कम जांच की जानी चाहिए। –