【发布时间】:2013-06-28 12:17:30
【问题描述】:
如果两个事件都被触发,有没有办法只处理其中一个事件?如果我更改值并按下键,我最终会重新绑定网格两次,因为事件是按顺序到达的。我知道我得到的是正确的行为并且我得到了我所要求的,但我需要一种方法来阻止第二个事件的传播。我正在寻找事件级别的解决方案(不是 isGridBinded 标志)。
$(op.$txtBox).on('change keypress', function (e) {
if ((e.keyCode == 13 && e.type == 'keypress') || e.type == 'change') {
localWidget._rebindGrid();
}
});
【问题讨论】:
-
stackoverflow.com/questions/2363360/… 类似问题 - 没有答案。
-
你能提供一个带有相关代码的jsfiddle吗?!
-
@BrokenHeartღ 您的链接与委托相关,此处 OP 不委托事件
-
你的小提琴有一个错误,如果你处理 keyup,if 语句也应该检查 keyup。如果您将 keyup 改回 keypress,运行它然后输入值,从字段中松开焦点然后输入其他值并按 Enter,您将获得两个日志。
-
@roasted 再次检查此链接是针对 .on 的,因为 OP 要求。
标签: javascript javascript-events jquery