如何在JavaScript中比较事件
我想在同一个函数中给出文档onkeydown和onkeydup 如何知道触发函数的事件如何在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
<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。。无论如何