我正在使用一个小脚本,当按下箭头键时会触发页面上的下一个/上一个链接。当用户输入我的搜索输入表单时,我试图阻止这种情况发生(也许他们拼错了他们的查询并希望使用箭头键来修复)。
以下是我正在使用的内容:
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
。当光标在输入中时,触发仍然会进行。我不确定我做错了什么。非常感谢任何帮助!
答案 0 :(得分:3)
事件正在从输入到文档的其余部分冒泡。
在您的活动中尝试注销event.trigger:
$j(':not(input)').keydown(function(event) {
console.log(event.trigger);
// REST OF FN
我敢打赌,这不是HTMLInputElement
一种解决方案,尝试绑定输入并停止事件传播:
$j('input').keydown(function(event) {
event.stopPropagation();
});
看看是否有帮助。