我正在尝试使用jQuery和ajax在我的网站上创建实时搜索。
但是,如果搜索框具有焦点,并且我移动到另一个浏览器选项卡,则当我返回搜索页面时,jQuery会触发keyup()
函数。
我在JSfiddle
中嘲笑了这个重现的步骤:
预期/意图 keyup()
未触发
会发生什么: keyup()
已触发,如时间戳所示
我对Javascript知之甚少,而且我已经阅读了jQuery文档,但我无法得出答案。
这是因为我做错了吗? 它是Javascript / jQuery还是浏览器问题? (使用Chrome) 我怎么能阻止它发生?
谢谢!要温柔。
更新
它似乎只有在使用Ctrl + Tab时触发,而不是仅仅在标签之间单击。可以通过单击远离页面进行复制,但按Ctrl + Shift + Tab可以返回搜索页面。
我认为解决方案如下所述,将keyCode 9作为false
返回,但会将其保留为其他建议。
答案 0 :(得分:1)
我也在使用chrome(在win7上)。无法重现。
但是,对您而言,一种解决方案是检查生成的密钥代码(e.keyCode
),以及return false
是否始终相同。
例如,如果keyCode是37:
$('#search').keyup(function(e) {
if(e.keyCode == 37) return false;
$('#test').append('<li>'+e.timeStamp+'</li>');
});