我知道这在浏览器之间是不同的;例如如果我将一个函数附加到单选按钮的 onclick 和 onchange 事件,然后单击它,Chrome 会触发 onchange,然后触发 onclick,而 Firefox 则会执行相反的操作。
是否有任何人知道的资源可以通过浏览器分解此触发顺序?
这是一个 JSFiddle,它会告诉您是否在每个浏览器中运行它:
http://jsfiddle.net/BUkHz/ 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 上:
铬合金:
更改然后单击
苹果浏览器:
更改然后单击
iOS(6):
更改然后单击
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)