JavaScript中是否有替代e.which的选项?

8

我刚接触JavaScript事件处理,希望能够在鼠标移动和左键单击div元素时触发事件。我目前的实现是在触发mousemove事件函数时检查e.which == 1。然而,我已经阅读到e.which属性现在已经被弃用了(https://developer.mozilla.org/zh-CN/docs/Web/API/KeyboardEvent/which)。我的代码如下:

div.addEventListener("mousemove", myEventFunction)

function myEventFunction(e){
    if (e.which == 1){
       //do something
    }

}

有没有其他方法可以执行此操作?

1
@KevinKloet 不是的,这是针对键盘事件的。对于鼠标事件,应该使用 button。另外,keycode 已经被弃用了。 - Praveen Kumar Purushothaman
1
没有看到鼠标事件,我的错。 - Kevin Kloet
当然没问题。@KevinKloet - Praveen Kumar Purushothaman
请使用 e.key 来检查。 - Prashanth Benny
@PrashanthBenny 你确定吗?它返回什么?伙计,这是一个 MouseEvent!你说的是一个 KeyboardEvent - Praveen Kumar Purushothaman
1个回答

7

如果事件是关于鼠标的,您可以使用event.button

MouseEvent.button 是只读属性,用于指示触发事件时按下了哪个鼠标按钮。

function myEventFunction(e) {
    e = e || window.event;
    if ("buttons" in e) {
        return button;
    }
    var button = e.which || e.button;
    return button;
}

该函数返回button的值。

1
e.buttons 对我有用!非常感谢您的及时回复。 - DavNej
1
是的,我注意到它们之间的区别了。再次感谢您。 - DavNej

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接