2013-03-22 8 views
5

मुझे पता है कि यह ब्राउज़र के बीच अलग है; जैसे यदि मैं एक रेडियो बटन पर ऑनक्लिक और ऑनचेंज इवेंट में कोई फ़ंक्शन संलग्न करता हूं, तो उस पर क्लिक करें, क्रोम चालू हो जाता है, फिर फ़ायरफ़ॉक्स विपरीत होता है, जबकि फ़ायरफ़ॉक्स विपरीत होता है।रेडियो बटन पर घटनाओं को किस क्रम में आग लगती है?

क्या कोई संसाधन है जो ब्राउज़र के द्वारा इस फायरिंग ऑर्डर को तोड़ने के बारे में जानता है?

+1

FYI करें: यहां तक ​​कि jQuery का उपयोग कर घटनाएं ब्राउज़र के आधार पर एक अलग क्रम में आती हैं। –

+0

अफैइक फायरिंग ऑर्डर को बदलना संभव नहीं है, लेकिन आप वांछित ईवेंटहैंडर को 'event.type', और "रीडायरेक्ट" देख सकते हैं। – Teemu

+0

मुझे वास्तव में * परिवर्तन * को बदलने की ज़रूरत नहीं है (उस असमानता के रूप में परेशान हो सकता है) - मैं सिर्फ यह जानना चाहूंगा कि क्या उम्मीद करनी है, और आश्चर्य हुआ कि किसी और ने परीक्षण किया है, इससे पहले कि मैं परीक्षणों का एक गुच्छा चलाता हूं। –

उत्तर

0

यहाँ कि आपको बता यदि आप इसे प्रत्येक ब्राउज़र में चलेंगे एक JSFiddle है:

http://jsfiddle.net/BUkHz/

<label for="myRadio">Radio Button</label><input type="radio" name="myRadio" id="myRadio"/> 
<label for="myRadio">Radio Button 2</label><input type="radio" name="myRadio" id="myRadio2"/> 




var myRadio = document.getElementById('myRadio'); 
    var myRadio2 = document.getElementById('myRadio2'); 

    myRadio.addEventListener('change', interceptRadioEvent); 
    myRadio.addEventListener('click', interceptRadioEvent); 
    myRadio2.addEventListener('change', interceptRadioEvent); 
    myRadio2.addEventListener('click', interceptRadioEvent); 

    function interceptRadioEvent(e){ 
     //do anything else you want to here... 
     radioEventHandler(e); 
    } 

    function radioEventHandler(e){ 
     console.log(e.type); 
    } 

मैं एक कूबड़ आप क्या कर रहे पर इसी क्रम निर्भर करता है - उदाहरण के लिए यदि आप पहले क्लिक पर केवल एक रेडियो बटन होगा, यह होगा: बदलें, क्लिक करें, फिर क्लिक करें, क्लिक केवल 'क्लिक' होगा क्योंकि यह क्लिक पर प्रतिक्रिया देता है लेकिन इसे अनसेट नहीं कर सकता है।

मुझे उम्मीद है कि इससे मदद मिलती है।

Mac पर:

क्रोम: परिवर्तन उसके बाद

सफारी: परिवर्तन उसके बाद

आईओएस (6): परिवर्तन उसके बाद

+0

मैं उम्मीद कर रहा था कि किसी और ने पहले से ही मेरे लिए इसका परीक्षण किया है - लेकिन हाँ, आप सही हैं, ऐसा कुछ पूरी तरह से उन फायरिंग ऑर्डर को मैप करेगा। –

+0

ऐसा लगता है कि मेरे लिए काम नहीं किया। घटना मैंने उस कोड को चेक किया जिसे आपने बेवकूफ पर पोस्ट किया था। क्रोम 31.0.16 संस्करण: बदलें -> फ़िरफ़ॉक्स 25.0.1 संस्करण पर क्लिक करें: क्लिक करें-> बदलें और हाँ ओएस का उल्लेख करना भूल गया है लेकिन मुझे लगता है कि समस्या नहीं होनी चाहिए –

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