我在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而表现得很奇怪;当我关闭它它工作正常但溢出必须在那里..仍然没有线索如何解决这个问题:<
答案 0 :(得分:0)
event.target将其返回到调度事件的目标。检查一下以获取更多https://developer.mozilla.org/en/DOM/EventTarget。也许你可以重新调整元素,以便将元素设置在触发事件的元素上方以获得事件。