Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使onkeydown在除一个div之外的所有文档上工作_Javascript_Html - Fatal编程技术网

Javascript 如何使onkeydown在除一个div之外的所有文档上工作

Javascript 如何使onkeydown在除一个div之外的所有文档上工作,javascript,html,Javascript,Html,我有HTML5应用程序,我在其中使用快捷键。在这个应用程序中,我还可以聊天。当我在聊天窗口中写东西时,快捷键也会启动。如何在聊天窗口中排除快捷键 这就是我使用onkeydown的方式: <body onkeydown="Gui.doKey(arguments[0] || window.event)"> 您是否尝试了jquery:not()选择器来排除div,我猜您的聊天室所在的div? var Gui={ doKey:函数(事件){ 如果(event.target==) 返回;

我有HTML5应用程序,我在其中使用快捷键。在这个应用程序中,我还可以聊天。当我在聊天窗口中写东西时,快捷键也会启动。如何在聊天窗口中排除快捷键

这就是我使用onkeydown的方式:

 <body onkeydown="Gui.doKey(arguments[0] || window.event)">

您是否尝试了jquery:not()选择器来排除div,我猜您的聊天室所在的div?
var Gui={
doKey:函数(事件){
如果(event.target==)
返回;
var key=event.keyCode | | event.charCode;
开关(钥匙){
案例83://s
跳过();
打破
违约:
控制台日志(键);
}
}
}

请参见

向标记中添加一个类,以确定是否需要为其忽略按键。让Gui.doKey方法检查源元素。如果匹配,请在执行任何其他操作之前返回

HTML:


“Gui.doKey”来自哪里?在
Gui.doKey
中,检查
event.currentTarget==
。如果是这样,abort.var Gui={doKey:function(event){var key=event.keyCode | | | event.charCode;switch(key){case 83://s skip();break;默认值:console.log(key);}@Derija93我尝试了你的建议,但event.currentTarget始终是bodyelement@BartekKosa尝试使用target而不是currentTarget。currentTarget映射到拥有事件侦听器的元素。在这个问题中,jQuery没有被标记。@Kobbe您能给出一个在这个特定场景中如何执行此操作的示例吗?
var Gui = { 
    doKey: function (event) { 
        var key = event.keyCode || event.charCode; 
        switch (key) { 
            case 83: //s 
                skip(); 
                break; 
            default: 
                console.log(key); 
        }
    }
}
var Gui = { 
    doKey: function (event) { 
        if(event.target == <your_div>) 
             return;
        var key = event.keyCode || event.charCode; 
        switch (key) { 
            case 83: //s 
                skip(); 
                break; 
            default: 
                console.log(key); 
        }
    }
}
<div class="ignore_keydown chat_window">...</div>
var Gui = {
    doKey : function (keyboardEvent) {
        // If the class contains the ignore selector, return immediately
        if (keyboardEvent.srcElement.className.indexOf('ignore_keydown') === -1) {
            return false;
        }
        // Original code...
    }
}