2013-03-22 21 views
5

So che questo è diverso tra i browser; per esempio. Se applico una funzione all'evento onclick e onchange di un pulsante di opzione, quindi fai clic su di essa, Chrome attiva onchange poi onclick, mentre Firefox fa il contrario.quale ordine si attivano gli eventi sul pulsante di opzione?

Esiste una risorsa che qualcuno sa di questo comando di interruzione da parte del browser?

+1

FYI: Anche usando jQuery il gli eventi arrivano in un ordine diverso a seconda del browser. –

+0

Afaik non è possibile modificare l'ordine di accensione, ma è possibile selezionare 'event.type' e" reindirizzare "al gestore di eventi desiderato. – Teemu

+0

Non ho davvero bisogno di * modificare * l'ordine (fastidioso come potrebbe essere questa disparità) - Vorrei solo sapere cosa aspettarmi, e mi chiedevo se qualcun altro l'avesse mappato, prima di eseguire una serie di test. –

risposta

0

Ecco un JSFiddle che vi dirà se lo si esegue in ogni browser:

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

Ho la sensazione che l'ordine dipende da quello che stai facendo - per esempio se si solo un pulsante di opzione al primo clic sarà: modifica, fare clic su altri clic sarebbe "clic" solo in quanto risponde al clic ma non può annullarlo.

Spero che questo aiuti.

Su un Mac:

Chrome: cambiamento quindi fare clic su

Safari: cambiamento quindi fare clic su

iOS (6): cambiamento quindi fare clic su

+0

Speravo che qualcun altro l'avesse già provato per me - ma sì, hai ragione, qualcosa del genere disegna totalmente quegli ordini di fuoco. –

+0

Sembra che non ha funzionato per me. evento ho controllato il codice che hai postato su fiddle. chrome 31.0.16 versione: Cambia -> clicca Versione 25.0.1 di Firfox: click-> cambia e sì dimentica di menzionare os è Windows ma immagino che non dovrebbe essere il problema –

Problemi correlati