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

时间:2011-06-22 02:34:43

标签: jquery events javascript-events firefox-addon mouseover

我需要找到一个事件的位置(鼠标悬停在一个按钮上),用于火狐扩展。 我一直在使用

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

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

然后我用鼠标位置。

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

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

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

1 个答案:

答案 0 :(得分:1)

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/