Javascript 绑定事件期间检索到不正确的输入值
我正在根据键入文本框的输入以以下方式执行一些筛选操作:Javascript 绑定事件期间检索到不正确的输入值,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,我正在根据键入文本框的输入以以下方式执行一些筛选操作: $("#search").on('change keyup', function () { var search = $.trim($(this).val()); ...perform search based operation }); 我遇到的问题是,当快速输入时,使用.val()检索的最新值并不总是最新的。例如,将search变量的值记录到控制台并搜索“jquery”时;这是快速输入时记录的内容:
$("#search").on('change keyup', function () {
var search = $.trim($(this).val());
...perform search based operation
});
我遇到的问题是,当快速输入时,使用.val()
检索的最新值并不总是最新的。例如,将search变量的值记录到控制台并搜索“jquery”时;这是快速输入时记录的内容:
日志:j日志:j
日志:j
日志:j
日志:j
日志:j 减慢击键速度可获得正确的结果: 日志:j
日志:jq
日志:jqu
日志:jque
日志:jquery
日志:jquery 当我从上的
.on中删除基于搜索的操作并只记录击键时,所有记录都正确。我相信这可能是某种时间问题,但不确定这是否是我所不知道的事情。我正在对IE9/jQuery1.9.1运行这个。错误值的原因可能是什么
更新:
小提琴:
我建议使用keydown
而不是keydup
释放钥匙时会触发Keyup。似乎当您键入fast或按住一个键时,keyup事件不会触发,直到没有更多的键被按住
如果您不想在每次按键时触发该功能,您可以实施一个短暂的延迟或自上次按键检查以来经过的时间,以查看是否要执行搜索。我建议使用keydown
而不是keyup
释放钥匙时会触发Keyup。似乎当您键入fast或按住一个键时,keyup事件不会触发,直到没有更多的键被按住
如果您不想在每次按键时触发该函数,您可以实施一个短暂的延迟或自上次击键检查以来经过的时间,以查看是否执行搜索。我仍然存在相同的问题,仅捕获keyup事件。请在此处尝试。尝试启用('input Property Change')
@Zenith,我让OP更改并生成问题时,此选项处于打开状态。我仍然存在相同的问题,仅捕获keyup事件。请在此处尝试。在('input Property change')上尝试。
@Zenith,我让OP更改并生成问题时,此选项处于打开状态。我也在小提琴中尝试了此选项。同样的事情也发生在键盘上。我也在小提琴上试过。同样的事情发生在keydown上。