Javascript 当切换到页面时是否触发jQuery键控?
我正在尝试使用jQuery和ajax在我的站点上创建一个实时搜索 但是,如果搜索框具有焦点,并且我移动到另一个浏览器选项卡,那么当我返回搜索页面时,jQuery将触发Javascript 当切换到页面时是否触发jQuery键控?,javascript,jquery,keyup,Javascript,Jquery,Keyup,我正在尝试使用jQuery和ajax在我的站点上创建一个实时搜索 但是,如果搜索框具有焦点,并且我移动到另一个浏览器选项卡,那么当我返回搜索页面时,jQuery将触发keyup()函数 我已经把它做成了模型 复制步骤: 打开JSFIDLE和任何其他浏览器选项卡 为文本框提供焦点 移动到另一个浏览器选项卡 返回原始页面(JSFIDLE) 预期/预期:keyup()未触发 发生的情况:keyup()已触发,如时间戳所示 我对Javascript了解不多,也读过jQuery文档,但我想不出答案 这是不
keyup()
函数
我已经把它做成了模型
复制步骤:
keyup()
未触发
发生的情况:keyup()
已触发,如时间戳所示
我对Javascript了解不多,也读过jQuery文档,但我想不出答案
这是不是因为我做错了什么?
这是Javascript/jQuery还是浏览器问题?(使用铬)
我怎样才能防止它发生
谢谢!温柔点
更新
似乎只有在使用Ctrl+Tab键时才会触发,而不仅仅是在选项卡之间单击。可以通过单击页面以外的位置进行复制,但Ctrl+Shift+Tab可返回搜索页面
我假设解决方案如下所述,将keycode9返回为false
,但将保留它以供其他建议使用。我也在使用chrome(在win7上)。无法复制。
不过,对您来说,一个解决方案是检查生成了哪个键码(e.keycode
),如果始终是同一个键码,则返回false。
对于ex,如果键代码为37:
$('#search').keyup(function(e) {
if(e.keyCode == 37) return false;
$('#test').append('<li>'+e.timeStamp+'</li>');
});
$(“#搜索”).keyup(函数(e){
如果(e.keyCode==37)返回false;
$(“#test”).append(“”+e.timeStamp+” );
});
我也在使用chrome浏览器,无法复制它。在您使用tab键之前,文本框是否有焦点?真遗憾,我希望我能尽我所能帮助你!这是可以的,但是为什么需要过滤这样的事件呢?只需读取输入的值。这当然会从keyup函数中删除该键,因此您需要确保不想测试该特定键。我还可以在Safari中复制它。有趣的是,keyCode是9,它是tab。例如:Ctrl+V
也会生成一个keyup
事件。我不确定,确实需要过滤。