Je sais que c'est différent entre les navigateurs; Par exemple, si j'attache une fonction à l'événement onclick et onchange d'un bouton radio, puis cliquez dessus, Chrome déclenche onchange puis onclick, tandis que Firefox fait le contraire.
Existe-t-il une ressource dont on sait que cela décompose cet appel par navigateur?
Voici un JSFiddle qui vous dira si vous l'exécutez dans chaque navigateur:
<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); }
J'ai l'impression que l'ordre dépend de ce que vous faites – par exemple, si vous ne disposez que d'un bouton radio sur le premier clic, il sera: changer, cliquer puis d'autres clics seraient «cliquer» uniquement car il répond au clic mais Ne peut pas le désactiver.
J'espère que cela vous aidera.
Sur un Mac:
Chrome: change puis cliquez sur
Safari: change puis cliquez sur
IOS (6): change puis cliquez sur