2013-06-10 6 views
5

मेरे पास मेरे पृष्ठ पर एक मेनू है और वर्तमान में स्क्रिप्ट लिख रहा हूं जो मेनू बटन के लिए सभी क्लिक ईवेंट सेट करता है। प्रत्येक बटन अपनी विधि को कॉल करेगा, इसलिए इसे स्पष्ट रूप से सेट किया जाना चाहिए।एकाधिक पर() या स्विच() पर एक()

मेरा प्रश्न है, काफी बस, जो निम्नलिखित दो तरीकों में से इस स्थिति में उपयोग करने के लिए बेहतर है:

$(document).on('click','#menu .button', function(){ 
    switch($(this).attr('id')){ 
     case 'foo_button': 
      // Set the event for the foo button 
     break; 
     case 'bar_button': 
      // Set the event for the bar button 
     break; 
     // And the rest of the buttons 
    } 
}); 

या:

$(document).on('click','#foo_button',function(){ 
    // Set the event for the foo button 
}); 
$(document).on('click','#bar_button',function(){ 
    // Set the event for the bar button 
}); 
// And the rest of the buttons 

मैं सोचा होगा विकल्प 1 बेहतर होगा क्योंकि यह केवल एक ईवेंट सेट करता है ... हालांकि, यह ईवेंट मेनू बटन के प्रत्येक क्लिक पर कॉल किया जाएगा, इसलिए यह जानना मुश्किल है कि कौन सा अधिक कुशल होगा।

+1

jQuery पहले से ही ऐसा करता है। – SLaks

+0

@SLaks jQuery में जैसा कि एक स्विच स्टेटमेंट लागू होता है? –

उत्तर

2

यदि हैंडलर फ़ंक्शन प्रत्येक अलग-अलग बटन आईडी के लिए वास्तव में अलग है, तो प्रत्येक को on() पर अपनी कॉल का उपयोग करके पंजीकृत होना चाहिए।

शायद यह आपके कोड के प्रदर्शन में एक उल्लेखनीय अंतर नहीं देगा, लेकिन यह भविष्य में अन्य डेवलपर्स (या यहां तक ​​कि खुद को रखरखाव के लिए) पढ़ने के लिए चीजों को और अधिक आसान बना देगा।

+0

शानदार, यही वह है जिसे मैं +1 जानना चाहता था। क्या आप संभवतः समझा सकते हैं क्यों? –

+0

बहुत बढ़िया, जानकारी के लिए धन्यवाद, जब मैं कर सकता हूं स्वीकार करेंगे :-) –

संबंधित मुद्दे