HTML: 从onclick属性访问鼠标事件

4

我知道如果使用js指定鼠标监听器,就可以访问鼠标事件:

myElement.addEventListener("click", e => console.log(e.pageX))

我的问题是:在通过HTML属性分配侦听器时,是否可以访问鼠标事件?
<div onclick="alert('where is the mouse event?')"></div>
2个回答

5

onclick事件将被视为函数内部的一部分,该函数将具有一个事件参数,因此您可以像这样执行:

<div onclick="console.log(arguments[0].pageX)">text</div>

但是你真的真的不应该这样做。总是使用JavaScript附加侦听器,而不是使用HTML-inline-eval。这样代码会更容易编写,更易于阅读,更安全,更易于维护。


我明白了...直到现在,我认为这两种方式有点等价。 看来我错了。 非常感谢您的回答! - Alkis Mavridis

2

您可以通过将event传递给函数来检查:

function checkEvent(e, msg){
  console.log(e.type, 'event has been fired.');
  console.log(e.pageX);
}
<div onclick="checkEvent(event, 'where is the mouse event?')" >Click My Div</div>


适用于div和大多数其他标签,效果非常好。奇怪的是,当我将完全相同的内容应用于svg元素时,我得到了“未定义事件”的错误。看起来这是特定于标签的... - Alkis Mavridis

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