2013-03-22 10 views
5

Wiem, że różni się między przeglądarkami; na przykład Jeśli dołączę funkcję do zdarzenia onclick i onchange przycisku radiowego, kliknij go, Chrome uruchomi onchange, a następnie onclick, podczas gdy Firefox robi odwrotnie.Jaką kolejność zdarzeń uruchamia się po kliknięciu przycisku opcji?

Czy istnieje ktoś, kto wie o tym, że łamie ten rozkaz strzelania przez przeglądarkę?

+1

FYI: Nawet przy użyciu jQuery na Wydarzenia są w innej kolejności w zależności od przeglądarki. –

+0

Afaik nie można zmienić kolejności uruchamiania, ale możesz sprawdzić "event.type" i "przekierowanie" do pożądanego modułu obsługi zdarzenia. – Teemu

+0

Naprawdę nie muszę * zmieniać * kolejności (denerwującej jak ta różnica może być) - Chciałbym tylko wiedzieć, czego się spodziewać, i zastanawiałem się, czy ktoś inny zmapował to, zanim przeprowadzę masę testów. –

Odpowiedz

0

Oto JSFiddle że powie, jeśli go uruchomić w każdej przeglądarce:

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); 
    } 

Mam przeczucie, że kolejność zależy od tego, co robisz - na przykład, jeśli tylko jeden przycisk radiowy przy pierwszym kliknięciu będzie: zmiana, kliknięcie, kolejne kliknięcia będą "klikać" tylko wtedy, gdy reagują na kliknięcie, ale nie mogą go anulować.

Mam nadzieję, że to pomaga.

Na Mac:

Chrome: zmiana następnie kliknij

Safari: zmiana następnie kliknij

iOS (6): zmiana następnie kliknij

+0

Miałem nadzieję, że ktoś inny już przetestował to dla mnie - ale tak, masz rację, coś takiego w zupełności wyznaczy te rozkazy strzelania. –

+0

Wygląda na to, że nie sprawdziło się to u mnie. wydarzenie Sprawdziłem kod, który napisałeś na skrzypcach. chrome Wersja 31.0.16: Zmień -> kliknij Firfox wersja 25.0.1: kliknij-> zmień i tak zapomniałem wspomnieć o os jest Windows, ale myślę, że nie powinien to być problem –

Powiązane problemy