JavaScript 函数中的事件/对象
Event/object in JavaScript function
如果我有一些这样的HTML:
<a onmouseover='SetTopLeft(this);'href='#'>Click me!</a>
我可以同时获取函数中的对象和事件吗?那么,例如,我可以拥有这样的方法签名吗?
function SetTopLeft(e, o)
。其中 e 是事件,o 是"这个"?我实际上可能不需要该对象,但我认为我可能确实需要该事件。我不介意更好地理解它在 JavaScript 中是如何工作的 - 即,何时/如何传递事件以及何时/如何传递调用对象?我可以选择通过哪个吗?我可以同时通过吗?
基本上,我真正需要做的是在锚点所在的 DIV 中获取鼠标坐标(即使该 DIV 只是网页的一部分以及浏览器是否全屏),我有一个糟糕的时间完成它。我看到的大多数用于在某些元素中获取这些坐标的示例都使用该事件以及该事件的 pageX 和 pageY 属性。
顺便说一下,这必须在IE 6以后的工作。火狐也会很好。其他的不是必需的。
是的
,在内联代码中,this
引用元素的HTML DOM对象,event
引用事件对象。因此,您可以执行以下操作:
.HTML
<a onmouseover='SetTopLeft(event, this);' href='#'>Click me!</a>
JavaScript
function SetTopLeft(e, obj) {...}
通常应避免使用内联事件处理程序。它将表示(HTML)与逻辑(JavaScript)混合在一起。quirksmode.org 提供了有关事件处理的所有文章的大量文章。
由于在事件处理程序中,this
通常引用处理程序绑定到的元素,因此还可以显式设置元素this
并将事件对象作为第一个参数传递:
<a onmouseover='SetTopLeft.call(this, event);'href='#'>Click me!</a>
有关更多信息,请参阅 .call()
[MDN]。
除此之外,如果您的链接没有链接到任何内容,最好使用简单的span
元素或按钮并相应地设置其样式。
相关文章:
- 将事件附加到对象/数组
- 在创建对象后附加一个jquery事件
- JavaScript:点击事件中对象的值
- 如何从已注册的事件发送 JavaScript 对象
- jsplumb中的Click事件处理程序丢失“;这个“;对象
- 枚举附加到文档的HTML对象的所有事件
- 通过单击事件识别画布上的对象
- jQuery UI draggable:绑定到mousemove事件中的对象
- 如果在对象上触发了dispatchEvent,我如何才能找到如何侦听它以及在哪里调度事件
- 如何从jQuery的事件对象中检索属性
- 如何在动态创建元素的内联onclick事件中传递对象
- 如何在JavaScript中基于事件对象获取文件名
- 如何在不删除类似侦听器的情况下从父对象中删除jQuery事件侦听器
- YES或NO表示对象事件中的分号
- Javascript关闭DOM对象事件和事件冒泡
- 存储对象事件的内容
- 将 JS 函数附加到动态创建的对象事件
- 未捕获的类型错误:对象 #<事件> 没有方法“拆分”
- javascript中的ONDELETE对象事件
- 嵌套对象事件