firefox中的Event.target问题

时间:2010-11-20 16:32:51

标签: javascript jquery html

我在html / javascript中创建自己的拖放脚本作为我网站的一部分。这一切都很好,除非我在firefox中尝试它。我做了一些调试,发现firefox从event.target返回错误的目标。

以下是代码的重要部分,

$(document).bind({
  'mousemove' : function(e){
     console.log(e);

+更多代码+

var obj = e.target;
 if(obj.className == "sidebarItem"){
    dt.root.handleHover(e.target);
  }else if(obj.className == "sidebarItemText"){
   dt.root.handleHover(e.target.parentNode);
  }

(我只是在这里输入了这段代码,所以可能会出现一些语法错误,但是你们知道它是如何工作的)

当用户点击“可拖动”的div时,此代码会被绑定,并在再次释放鼠标按钮后立即取消绑定。

所有在IE和Chrome中工作得很好,它给出了正确的div在哪里悬停,但在firefox中event.target返回一个甚至不接近鼠标的div(它实际上是捕获的div后面的div)第一次点击,它设置有相对位置)。

这是情况

----------
|a | bbbb
|a | bbbb
|a | bbbb

a =拖动目标

b =从中拖出的地方,以及firefox返回的div

任何人都知道我在这里做错了什么?

编辑:

我发现总是作为event.target返回的div由于overflow-y:auto而表现得很奇怪;当我关闭它它工作正常但溢出必须在那里..仍然没有线索如何解决这个问题:<

1 个答案:

答案 0 :(得分:0)

event.target将其返回到调度事件的目标。检查一下以获取更多https://developer.mozilla.org/en/DOM/EventTarget。也许你可以重新调整元素,以便将元素设置在触发事件的元素上方以获得事件。