有没有办法确定是否由于相同的操作而触发了两个事件?

时间:2015-05-23 20:17:28

标签: javascript jquery events onclick onchange

由于表单中不同元素的事件顺序(请参阅http://jsfiddle.net/fs7norbL/,底部的强制性代码),我需要同时处理复选框的onchange和onclick事件。

我想知道是否由于相同的人工交互而发生了onchange和onclick事件的复选框。我可能只为每个人工交互处理其中一个(以先到者为准),但需要能够处理这两种事件类型。

event.timestamp不会因为这个长期存在的开放式mozilla错误而发生: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');
});

1 个答案:

答案 0 :(得分:0)

您可以在syntax error, unexpected keyword_end, expecting $end处理程序中触发change事件 - &gt;使用某条消息将回调委托给一个函数(或者添加状态可从clickclick犯规者到达的局部变量)。

change

因此,你会知道发生了什么。