为什么onMouseUp没有开火?

时间:2011-03-23 15:56:35

标签: javascript firefox

我有一个div,带有onMouseUp事件集(用HTML格式)。 在该div中有许多元素,其中一些元素包含我想要拖动的句柄图标。 图标有一个onMouseDown事件。

当我将鼠标放在图标上并将其释放时,首先触发图标的onMouseDown事件,然后触发div的onMouseUp事件 - 正如我所期望的那样。

然而,当我单击图标,将其拖到div的另一部分并释放时,mouseDown事件将按预期触发,并且不会触发onmouseUp事件。

我有两个问题。

1)为什么这是行为?

2)以独立于浏览器的方式处理拖放的正确方法是什么?

我在widows上使用firefox 3.6.16,但IE 8的行为方式相同。

2 个答案:

答案 0 :(得分:0)

我知道这似乎不是一个公平的答案,但最好的答案(在我看来)是使用类似jQuery的东西并使用draggable。我只使用过Dojo和jQuery,但它们都有一个易于使用的拖放界面,与浏览器无关。

这是一个解释jQuery的网址。

http://jqueryui.com/demos/draggable/

答案 1 :(得分:0)

我今天只是在努力解决这个问题。在http://www.brainjar.com/dhtml/drag/demo.html有一个很好的演示,它使用原始Javascript(包含所有的浏览器检查)。看起来关键是在mousedown事件上停止事件传播。

我正在使用Dojo,并且在dragStart中使用dojo.stopEvent(也就是附加到mousedown的函数)在我看到mouseup时产生了不同。

相关问题