javascript - 查找事件的位置(鼠标悬停在按钮上),用于 Firefox 扩展

标签 javascript events firefox-addon mouseover dom-events

我需要为 Firefox 扩展找到事件的位置(鼠标悬停在按钮上)。 我一直在使用:

var obj = $mb(e.target,doc).offset();
var left = obj.left;
var top = obj.top;

但问题是它返回的值是事件在屏幕中的位置而不是页面中的位置,也就是说它没有考虑滚动位置 {in Firefox} ..(但在 Google Chrome 中它的工作).

然后我使用了鼠标位置。

var obj_left = (window.Event) ? e.pageX : event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);

但问题是它根据导致事件的鼠标位置返回不同的值(按钮两端的相同按钮的不同值),但在第一种情况下即使它返回屏幕位置它返回单个值事件(两端按钮的单个值)。

我需要的是事件的返回值应该相同,并且应该考虑滚动位置。

最佳答案

Firefox 中的鼠标事件同时具有 pageXclientX 属性(请分别参见 https://developer.mozilla.org/en/DOM/event.pageXhttps://developer.mozilla.org/en/DOM/event.clientX 处的文档)。似乎 pageX 是您想要的 - 相对于当前页面的位置,与滚动无关。 pageX 是非标准的,可能未在 Chrome 中实现,但 jQuery 似乎以跨浏览器的方式提供此属性,请参阅 http://api.jquery.com/event.pageX/ .

关于javascript - 查找事件的位置(鼠标悬停在按钮上),用于 Firefox 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6434277/

相关文章:

javascript - JQuery:简单的 animate() 无法正常工作

javascript - 如何提高 highcharts 图表创建和渲染的性能

javascript - Firefox 附加组件 api 中的 HTML 元素 Hook

javascript - 从 Firefox 附加组件中选择性 URL 重写?

javascript - 选项卡内容脚本中未调用 setInterval

javascript - javascript中的嵌套引号

javascript - 如何在 node.js 和 SQLite3 中使用 document.querySelector 和 require

.net - 如何取消单选按钮或复选框选中的更改

滚动重绘之前的javascript事件?

python-2.7 - Tkinter 中的自定义事件