当单选按钮点击时,事件触发的顺序是什么?

what order do events fire on radio button click?

本文关键字:顺序 是什么 事件 单选按钮      更新时间:2023-09-26

我知道这是不同的浏览器;例如,如果我将一个函数附加到单选按钮的onclick和onchange事件,然后单击它,Chrome将触发onchange然后onclick,而Firefox则相反。

是否有一个资源,任何人都知道,打破这个触发顺序的浏览器?

这里有一个JSFiddle,它会告诉你是否在每个浏览器中运行它:

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

我有一种预感,顺序取决于你在做什么-例如,如果你只有一个单选按钮在第一次点击它将是:改变,点击,然后进一步点击将是"点击",因为它响应点击,但不能取消它。

我希望这对你有帮助。

在Mac上:

铬:更改,然后单击

Safari:更改,然后单击

iOS (6):然后点击