ugrás a tartalomhoz

IE - change event bubbling

Babar · 2007. Nov. 7. (Sze), 16.55
Egy korábbi témában kapott javaslat alapján próbáltam átdolgozni a diszkret javascriptet használó oldalam úgy, hogy az eseménykezelőket nem az érintett elem, hanem a body elem eseménykezelőjéhez rendelem:

Event.observe(window, 'load', myLoader, false);

function myLoader(evt) {

    Event.observe(document.body, 'click', function(event) {
        var element = $(Event.element(event));
        alert(element.getAttribute('id')+' clicked');
    });

    Event.observe(document.body, 'change', function(event) {
        var element = $(Event.element(event));
        alert(element.getAttribute('id')+' changed');
    });
}
Firefox és Opera szépen teszi is az általam elképzelteket, de Explorerben csak a click eseményt kezeli le. Olyan, mintha a body elemnek nem értelmezné a change eseménykezelőjét.

Mit csinálok rosszul, hogy lehet úgy megoldani, hogy IE alatt is menjen? Ha tényleg a body-nak nem lehet change esemény kezelője, akkor minek lehet - például egy div-nek, vagy form-nak? Vagy mi más mód van, hogy magasabb szinten - nem az érintett elemnél - elkapjam a change eseményt?

Ja, és ugyanez a probléma submit eseménnyel is...

Babar
 
1

IE does not bubble form <select> element onchange events

wiktor · 2007. Nov. 7. (Sze), 18.12
Ebbe én is belefutottam, de megoldást nem tudok rá... :(

However, IE 6 and 7 do not bubble the onchange event beyond the originating select element, meaning that you have to explicitly attach an onchange handler to every select you generate. All other current browsers bubble the event properly.

http://www.johnvey.com/blog/2007/07/ie-does-not-bubble-form-select-element-onchange-events