2013-04-06 4 views
5

नोट करें यह समस्या सामान्य जनता पर लागू नहीं हो सकती है, क्योंकि ऐसा तब तक नहीं होता जब तक कि आप एक तेज़ क्लिकर न हों। (150-200ms/क्लिक) कारण मैं इस मुद्दे को पोस्ट कर रहा हूं क्योंकि मेरे आवेदन में एक दूसरे के बगल में 20+ चेकबॉक्स हैं, और व्यापक शोध के बाद मुझे इस मामले पर कोई संबंधित प्रश्न नहीं मिला है।चेकबॉक्स + लेबल संयोजन

यहाँ एक सरल परिदृश्य है - 4 चेक बॉक्स और 4 लेबल, प्रत्येक बॉक्स का आईडी के लिए एक:

[CB1] Label 1 
[CB2] Label 2 
[CB3] Label 3 
[CB4] Label 4 

प्रत्येक मामले सभी सीबीएस अनियंत्रित हैं में मान लें।

अपेक्षित व्यवहार:

  1. मैं तेजी से उत्तराधिकार में 4 सीबीएस पर क्लिक करें, वे सभी की जाँच हो जाएगा। (सत्य)
  2. मैं तेजी से उत्तराधिकार में 4 लेबल पर क्लिक करता हूं, और इसी सीबीएस की जांच हो जाती है। (क्रोम के लिए ही सच्चा, लेकिन अभी भी इष्टतम नहीं)

7 विन पर मामला 2 के लिए वास्तविक व्यवहार (, लेबल पर क्लिक क्योंकि जैसा कि आप जानते हैं, लेबल बड़े और शैली करने योग्य, कर रहे हैं और चेक बॉक्स छोटे हैं और ओएस पर निर्भर):

  1. (फ़ायरफ़ॉक्स 19 में) CB2 और CB4 अनियंत्रित छोड़ दिया जाता है, और जब तक डाउन सूची के लिए जा रहा शब्द "लेबल", लेबल 2 और लेबल 4 के लिए प्रकाश डाला जाता है के रूप में अगर मैं दोहरा-क्लिक किया उन पर।
  2. (क्रोम 26 में) सभी सीबी सही ढंग से चेक किए जाते हैं, लेकिन सूची में जाने के दौरान लेबल "लेबल" लेबल 2 और लेबल 4 के लिए हाइलाइट किया जाता है, जैसे कि मैंने उन पर डबल-क्लिक किया।
  3. (आईई 10 में) सीबी 2 और सीबी 4 अनचेक छोड़ दिए गए हैं, लेकिन कोई झूठी हाइलाइटिंग नहीं है।

यदि क्लिक एक ही तत्व पर हैं तो गलत व्यवहार को उचित ठहराया जा सकता है। हमारे मामले में वे अलग-अलग आईडी और नामों के साथ स्पष्ट रूप से अद्वितीय चेकबॉक्स हैं। तो परिणाम जंगली अप्रत्याशित हैं।

तो मेरे सवाल है:

वहाँ डबल क्लिक करें घटना जब मैं तेजी से अभी भी विभिन्न चेक बॉक्स पर क्लिक करें, लेकिन अभी तक उन्हें तेजी से एक क्लिक के साथ जाँच फायरिंग अक्षम करने के लिए एक तरीका है?

jQuery(document).on('dblclick', 'input:checkbox+label', function(event){ 
    console.log('ugly hack fired'); 
    $(this).click(); 
    event.preventDefault(); 
}) 

उत्तर

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