我怀疑,我使用一些jQuery插件与我的键盘干扰具有约束的特定事件箭头按键。如何解除绑定事件的特定按键
假设我不在乎打破不管它是他们在做什么,我怎么能拆散,比如说所有的事件,左,右箭头按键?
如何将一个调试或查看已在按键触发的事件列表? (我不知道是哪行代码正在处理的按键,如果有的话)
我怀疑,我使用一些jQuery插件与我的键盘干扰具有约束的特定事件箭头按键。如何解除绑定事件的特定按键
假设我不在乎打破不管它是他们在做什么,我怎么能拆散,比如说所有的事件,左,右箭头按键?
如何将一个调试或查看已在按键触发的事件列表? (我不知道是哪行代码正在处理的按键,如果有的话)
如果当你在任何地方集中在页面上的方向键被触发,则该事件处理程序可能绑定到窗口或文件,解除绑定像这样:
$(window).unbind('keydown');
$(document).unbind('keydown');
如果要取消绑定事件只针对“左”或“右”箭头键,您可以停止活动,像这样:
$(window).bind('keydown', function(e){
switch(e.keyCode) {
case 37: // left arrow
e.preventDefault;
e.stopPropagation;
break;
case 39: // right arrow
e.preventDefault;
e.stopPropagation;
break;
}
});
那不是解开所有的keydown事件吗?我只想要左右箭头! – fortuneRice
查看上面的编辑! –
我会建议调试以查找这些事件绑定的位置(或者即使绑定了它们)。如果这些绑定了jQuery,他们将可以通过.data()查看;
例如,在一个控制台:
$('.suspected.element').data().events
如果关键事件通过一些插件是真正的原因,我想看看修改事件的结合,而不是添加的解决方法。
可以解绑,而不会影响其他绑定按键事件:
$(document).unbind("keypress.key37");
$(document).unbind("keypress.key39");
这就是所谓的namespaced events,使用<event_name>.<namespace>
即标签的特异性结合(在你的情况, “keypress.key37 & keypress.key39”)。
您可以从body中编写监听按键事件,并且在您的回调函数中按下特定的按键时,返回false。 – mpm