【问题标题】:Why is onMouseUp not firing?为什么 onMouseUp 没有触发?
【发布时间】:2011-06-09 02:11:06
【问题描述】:

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

当我将鼠标放在图标上并释放它时,首先会触发图标的 onMouseDown 事件,然后触发 div 的 onMouseUp 事件 - 完全符合我的预期。

但是,当我单击该图标,将其拖到 div 的另一部分并释放时,mouseDown 事件会如您所愿触发,而 onmouseUp 事件不会触发。

我有两个问题。

1) 为什么会出现这种行为?

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

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

【问题讨论】:

标签: javascript firefox


【解决方案1】:

我知道这似乎不是一个公平的答案,但最好的答案(在我看来)是使用 jQuery 之类的东西并使用可拖动的。我只使用过 Dojo 和 jQuery,但两者都有一个易于使用的独立于浏览器的拖放界面。

这是一个解释 jQuery 的 url。

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

【讨论】:

  • 看起来不错的解决方案。谢谢。可惜样式不匹配,但我希望我能解决这个问题。
【解决方案2】:

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

我正在使用 Dojo,并且在 dragStart(即附加到 mousedown 的函数)中使用 dojo.stopEvent 对我看到 mouseup 产生了影响。

【讨论】:

    猜你喜欢
    • 2021-05-23
    • 2021-06-21
    • 2019-02-19
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 2021-02-16
    • 1970-01-01
    相关资源
    最近更新 更多