2008-11-05 14 views
36

मैं डीओएम में कम घटनाओं को सुनने के लिए इवेंट प्रतिनिधिमंडल का उपयोग कर रहा हूं, लेकिन यह एक चुनिंदा बॉक्स पर एक बदले की घटना के लिए काम नहीं कर रहा है। क्या विनिमय घटना डीओएम को फैलती है या बुलबुला करती है?क्या एक्सचेंज इवेंट प्रचारित करता है?

गूंगलिंग एक निर्णायक उत्तर खोजने में विफल रहा है।

उत्तर

35

According to specification, "बदलें", "सबमिट करें", "रीसेट" बबल होना चाहिए और "फोकस" और "धुंध" बबल नहीं होना चाहिए।

यह व्यवहार आईई < 9 को छोड़कर सभी वेब ब्राउज़र में ठीक तरह से लागू किया जाता है, वह यह है कि, परिवर्तन,, प्रस्तुत रीसेट IE में ठीक से बुलबुला करना> = 9.

पुराने IE संस्करणों

पर एक jQuery वैकल्पिक हल के लिए https://stackoverflow.com/a/4722246/227299 देखें
+2

आईई <9, यानी 9 - ठीक – 4esn0k

+2

टेस्ट केस: http://jsfiddle.net/5x8tk/ –

+2

मुझे समझ में नहीं आता इस उत्तर की पहली वाक्य, यदि यह सच है, जैसा कि आप कहते हैं, वह परिवर्तन बुलबुले के रूप में spec'd है, और यह ज्यादातर ब्राउज़रों में ठीक से लागू किया गया है। क्या यह एक गलती है? – enigment

-2

सुनिश्चित नहीं है कि मुझे प्रश्न मिल जाए, लेकिन यदि आपका मतलब है, तो नहीं।

<div id="foo"> 
    <select onchange="alert('hi');"> 
    <option>Hello</option> 
    <option>World</option> 
    </select> 
</foo> 

जहां div id = "foo" का एक अपरिवर्तनीय ईवेंट होगा ... चयन सूची से बुलबुला?


एक संबंधित नोट पर

, बस एक FYI करें आप IE में चुनिंदा सूची के भीतर विकल्प (अच्छी तरह से, आप, लेकिन यह सक्रिय नहीं होगा सकते हैं)

0

मैं हेवन 'के लिए एक घटना अनुलग्न नहीं कर सकते टी ने थोड़ी देर के लिए इसका सामना किया, लेकिन पिछली बार मैंने किया, मुझे याद है कि फ़ायरफ़ॉक्स ने <SELECT> तत्व पर इस कार्यक्रम को पहचाना, जबकि आईई 6 ने <OPTION> टैग पर केवल ईवेंट को पहचाना। जहां तक ​​मुझे याद है।

आईई 7 उस समय बाहर नहीं था।

तो यदि यह मामला है, तो ईवेंट ईवेंट हैंडलर इनलाइन लिखने और इसके बजाय इसे तैयार करने के लिए इसे और अधिक समझ में आता है, न कि आप बहुत प्रदूषित, दोहराव वाले कोड के लिए तैयार होंगे।

+0

नहीं आईई एक बग में है कि यह सब पर

23

jQuery में 1.4 + परिवर्तन आईई सहित सभी ब्राउज़रों में घटना बुलबुले। http://webbugtrack.blogspot.com:

$('div.field_container').change(function() { 
    // code here runs in all browers, including IE. 
}); 
+0

आपके संकेत के लिए धन्यवाद! – rahmanisback

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