Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.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中比较事件_Javascript_Html_Dom - Fatal编程技术网

如何在JavaScript中比较事件

如何在JavaScript中比较事件,javascript,html,dom,Javascript,Html,Dom,我想在同一个函数中给出文档onkeydown和onkeydup 如何知道触发函数的事件 <script> document.onkeydown = listener; document.onkeyup = listener; function listener(e) { if(e === "onkeydown"){ console.log("onkeydown"); } else if(e === "onkeyup "){ console.log("on

我想在同一个函数中给出文档onkeydown和onkeydup

如何知道触发函数的事件

<script>

document.onkeydown = listener;
document.onkeyup = listener;

function listener(e) {

 if(e === "onkeydown"){
    console.log("onkeydown");
 }

 else if(e === "onkeyup "){
    console.log("onkeyup ");
 }

 else{
    console.log("unknown");
 }
}

</script>

document.onkeydown=侦听器;
document.onkeyup=侦听器;
函数侦听器(e){
如果(e==“onkeydown”){
控制台日志(“onkeydown”);
}
否则,如果(e==“onkeyup”){
控制台日志(“onkeyup”);
}
否则{
控制台日志(“未知”);
}
}

您需要检查
e
是事件对象,而不是字符串。

您可以使用
e.type

document.onkeydown=侦听器; document.onkeyup=侦听器

function listener(e) {

 if(e.type === "keydown"){
    console.log("keydown");
 }

 else if(e.type === "keyup "){
    console.log("keyup ");
 }

 else{
    console.log("unknown");
 }
}

您可以使用
e.type
,但删除
上的
前缀

function listener(e) {
   if(e.type.indexOf("key") !== 1)
      console.log("onkey" + (e.type == "keydown" ? "down" : "up")); 
   else { console.log("unknown"); }
}
使用此代码:

<script>

document.onkeydown = listener;
document.onkeyup = listener;

function listener(e) {

 if(e.type === "keydown"){
    console.log("onkeydown");
 }

 else if(e.type === "keyup "){
    console.log("onkeyup ");
 }

 else{
    console.log("unknown");
 }
}

</script>

document.onkeydown=侦听器;
document.onkeyup=侦听器;
函数侦听器(e){
如果(例如,类型==“向下键”){
控制台日志(“onkeydown”);
}
否则,如果(例如类型==“键控”){
控制台日志(“onkeyup”);
}
否则{
控制台日志(“未知”);
}
}

e.type
返回触发的事件

e.type
将为您提供事件名称。观察运算符优先级。我只是不确定e.type在IE中是否仍然没有
on
前缀。现在不必检查IE。。无论如何