由于表单不同元素上的事件顺序(请参阅 http://jsfiddle.net/fs7norbL/,底部的强制代码),我需要处理复选框的 onchange 和 onclick 事件。
我想知道复选框 onchange 和 onclick 事件是否由于相同的人机交互而发生。对于每次人机交互,我可能只处理其中一个(以先到者为准),但需要能够处理这两种事件类型。
由于长期存在的开放式 Mozilla 错误,event.timestamp 无法执行:https://bugzilla.mozilla.org/show_bug.cgi?id=238041 。 万一我好像没有什么可以用的了。
如何确定两个事件是否由同一人类交互引起。
<小时/><form>
<input type="checkbox"/>
$(':checkbox').click(function() {
console.log('checkbox click');
});
$(':checkbox').change(function() {
console.log('checkbox change');
});
$('form').change(function() {
console.log('form change');
});
最佳答案
您可以在 click
处理程序中触发 change
事件 -> 将回调委托(delegate)给带有一些消息的函数(或者添加状态可从 访问的局部变量单击
并更改
handle )。
$(':checkbox').click(function() {
console.log('checkbox clicked');
this.change();
});
这样你就会知道发生了什么。
关于javascript - 有什么方法可以确定两个事件是否是由于同一操作而触发的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30417164/