2012-05-24 8 views
6

जब एक क्लिक इवेंट हैंडलर select तत्व पर पंजीकृत है, तो मुझे ब्राउज़र में बहुत असंगत व्यवहार मिलता है। मैंने jsfiddle demo स्थापित किया है। यहां मैं देख रहा हूं:<select> तत्वों पर क्लिक ईवेंट को समझने की कोशिश कर रहे

  • ओएस एक्स (10.7 शेर) पर फ़ायरफ़ॉक्स 12: तत्व क्लिक होने पर ईवेंट आग लगती है। ड्रॉपडाउन संक्षेप में खुलता है, खुला नहीं रहता है। कीबोर्ड क्रियाएं क्लिक क्रियाएं उत्पन्न नहीं करती हैं।
  • लिनक्स पर फ़ायरफ़ॉक्स 12 (उबंटू ल्यूसिड): उसी
  • ओएस एक्स पर क्रोम 1 9: कोई माउस या कीबोर्ड इंटरैक्शन क्लिक ईवेंट ट्रिगर नहीं करता है।
  • लिनक्स पर क्रोम 1 9: पहला माउस क्लिक एक्सटेंशन को क्लिक करता है, बाद में अभी भी मौजूद चयन या विकल्पों पर क्लिक करता है, ट्रिगर्स इवेंट पर क्लिक करता है।
  • ओएस एक्स पर सफारी 5.1.6: लिनक्स पर क्रोम की तरह, पहले विकल्प विस्तृत करें पर क्लिक करें, विकल्प ट्रिगर पर क्लिक करें, ईवेंट पर क्लिक करें (क्रोम के विपरीत, सफारी विकल्पों को दिखाते समय चुनिंदा तत्व छुपाता है)।
  • एंड्रॉइड ब्राउज़र (आइसक्रीम सैंडविच पर): प्रारंभिक क्लिक ट्रिगर ईवेंट। विकल्प घटना के बाद दृश्यमान रहें, और क्लिक किया जा सकता है। विकल्पों पर क्लिक करने से कोई अन्य ईवेंट ट्रिगर नहीं होता है।
  • Android के लिए क्रोम बीटा (आइस क्रीम सैंडविच): एंड्रॉइड ब्राउज़र के समान।

मैं अगर कोई मुझे बता सकते हैं या मानक के लिए मुझे बात कर सकता है खुशी होगी, लेकिन मुझे लगता है कि यह है कि उपयोगी नहीं है के बाद से मैं सीधे है कि कोई भी इसे निम्नलिखित मनाया गया है। मुझे संदेह है कि यह करने की कोशिश करने के लिए यह एक असामान्य बात है, शायद बदले में परिवर्तन घटना को सुनना आम बात है। क्या यह सच है? विकल्पों पर क्लिक सुनने के बारे में क्या? मैं इसे काम करने में सक्षम नहीं था, लेकिन यह एक बेवकूफ बग हो सकता था।

(एक छोटे से अधिक संदर्भ प्रदान करने के लिए, मैं एक का चयन करें तत्व गूगल बंद के goog.ui.Select पर बनाया जगह रहा हूँ क्योंकि उस घटक अच्छी तरह से कुछ डेस्कटॉप select प्रतिपादन, विशेष रूप से Chrome की नकल करता है, लेकिन विस्तार विकल्पों में से पूर्ण स्क्रीन प्रतिपादन नहीं कर सकते आप एक मोबाइल ब्राउज़र पर देखते हैं। और एप्लिकेशन ने उस घटक के goog.ui.Component.EventType.ACTION ईवेंट को सुना है, जिसमें कहीं भी कोई स्पष्ट एनालॉग नहीं है, इसलिए मैं लगातार एक स्थिर विकल्प खोजने की कोशिश कर रहा हूं।)

+1

केवल बात लगातार onchange और onBlur का उपयोग किया जाएगा। इसके अलावा यह एक बकवास शूट है। – epascarello

+1

एक्सचेंज या तो आईई में कीबोर्ड नेविगेशन के साथ संगत नहीं है, हर बार एक नया विकल्प देखने पर एक्सचेंज निकाल दिया जाता है। अन्य ब्राउज़रों को केवल तभी आग लगती है जब कोई चुना जाता है। और इसे केवल एक विकल्प के बाद आग लगनी चाहिए * और * नियंत्रण फोकस खो देता है। हाँ, यह एक गड़बड़ है। – RobG

+0

मुझे नहीं पता कि यह मदद करता है लेकिन मूसडाउन घटना 10.8 पर्वत शेर पर फ़ायरफ़ॉक्स, क्रोम और सफारी में उसी तरह से काम करती है (केवल सूची दिखाते समय आग घटना)। quirksmode http://www.quirksmode.org/dom/events/tests/click.html – Barak

उत्तर

0

यहां एचटीएमएल लिविंग स्टैंडर्ड है, जो अंतिम अपडेट किया गया है 12 जुलाई 2013 (14 जुलाई 2013 को एक्सेस किया गया)। यह लिंक आपको SELECT तत्व पर ले जाता है। अन्य क्षेत्रों में, यह कहता है कि किसी भी HTMLElement को ऑनक्लिक ईवेंट को संभालने में सक्षम होना चाहिए और जावास्क्रिप्ट का उपयोग करके श्रोताओं को जोड़ने का उदाहरण देता है। बेशक, सवाल वास्तव में मज़बूती से निर्दिष्ट मानकों का समर्थन ब्राउज़र जो है ...

HTML Standard