我正在使用一个小脚本,当按下箭头键时,该脚本会触发页面上的下一个/上一个链接。我试图防止用户在我的搜索输入表单中输入时发生这种情况(也许他们的查询拼写错误并希望使用箭头键来修复)。
这是我正在处理的内容:
var $j = jQuery.noConflict();
$j(function(){
$j('.n').click(function() {
location.href = $j(this).attr('href')
});
$j('.p').click(function(){
location.href = $j(this).attr('href')
});
});
$j(':not(input)').keydown(function(event) {
if(event.keyCode==39) {
$j('.n').trigger('click')
}
if(event.keyCode==37) {
$j('.p').trigger('click')
}
});
HTML 基本上只是一个form
与input
场地。即使光标位于输入中,触发器仍然会触发。我不确定我做错了什么。任何帮助深表感谢!
该事件从输入冒泡到文档的其余部分。
在您的事件中尝试注销 event.trigger :
$j(':not(input)').keydown(function(event) {
console.log(event.trigger);
// REST OF FN
我打赌这不是一个HTMLInputElement
一种解决方案是尝试绑定输入并停止事件传播:
$j('input').keydown(function(event) {
event.stopPropagation();
});
看看是否有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)