【发布时间】:2016-08-30 20:32:24
【问题描述】:
我有以下代码
jQuery('#parent').on('keypress', '.textbox', function(e) {
var btn = jQuery(this).closest('tr').find('.btn');
if (btn.length) {
btn.triggerHandler('click');
}
});
此代码是一个委托的按键处理程序,它正在侦听具有类值“.textbox”的文本框的事件。 处理程序找到类为“.btn”的按钮并调用其单击处理程序,其中包含一个 ajax 调用。
问题是这似乎阻止了事件完成,即如果框中的值为“2”并且我输入“3”,则处理程序执行但框中的值仍然是“2”而不是“23”。
注释掉btn triggerHandler语句就正常了
知道为什么会这样吗?
【问题讨论】:
-
使用
keyup而不是keypress -
也许你可以使用 btn.trigger("click")
-
@Grommy 与
.trigger,triggerHandler&.click()相同。 -
@Developer107 我可能会使用它,但想知道为什么会这样?概念失效还是什么?
-
.trigger和triggerHander,不一样的,可以看这里:stackoverflow.com/questions/7530987/…
标签: javascript jquery events jquery-events