Jquery 为div禁用keydown
如何禁用特定div的keydown?我尝试过的所有选项都使我的div不再接受任何键。我想为我的div禁用的键是1和2 在这里,我列出了每个键的作用:Jquery 为div禁用keydown,jquery,keydown,keycode,Jquery,Keydown,Keycode,如何禁用特定div的keydown?我尝试过的所有选项都使我的div不再接受任何键。我想为我的div禁用的键是1和2 在这里,我列出了每个键的作用: $(document).keydown( function(e) { var press= ""; if ( boolKeyDepressed ) return; else
$(document).keydown( function(e)
{
var press= "";
if ( boolKeyDepressed )
return;
else
boolKeyDepressed = true;
var e = e || window.event;
var ltr = e.keyCode ? e.keyCode : e.charCode;
// alert( "You pressed " + ltr );
if ( ltr == 13 )
{
event.preventDefault();
}
switch(ltr)
{
case 49: // "1"
case 97: // "1"
FunctionHandleRsp("1")
//does something with the value 1
break;
case 50: // "2"
case 98: // "1"
FunctionHandleRsp("2")
// does something with the value 2
}
}
//etc etc
要为id为“myDiv”的div禁用它们,我添加了
及
及
但这些方法都不起作用。我把它们放在一个在屏幕上显示div的函数中。所有这些功能都是为我的所有div禁用keydown。通常div不能有键盘输入焦点,因此它永远不会收到击键 您在文档上被击键。这里不涉及div。当通过文档接收按键事件时,您可能需要检查鼠标是否位于特定的div上。根据具体情况,您可以处理密钥事件 否则,如果将其属性设置为true,则可以直接通过div接收关键事件 没有可编辑内容的div不接受击键。选中切换此中的
contentEditable
属性,然后尝试:
$(":not(#somediv, #somdiv *)").keydown(function(e) {
...
});
您要查找的是
event.stopPropagation()
:实际上,您可以:因此必须设置element.contentEditable属性。必须检查焦点。@dreamlab:不一定。键事件还可以通过来自输入元素的div冒泡/传播。它可以在div中处理。这就是jQuery中事件委派的工作方式。它不必是可编辑的——热键不是这样做的吗;我还想补充一点,但从OP的问题来看,我认为div可以集中精力。很高兴听到这个消息。谢谢。:)
$("#myDiv").unbind('keydown');
$("#myDiv).keydown(function(event) {
return false;
});
$(":not(#somediv, #somdiv *)").keydown(function(e) {
...
});