拖动过程中释放鼠标时忽略Javascript mouseUp事件

时间:2012-08-15 18:00:36

标签: javascript html javascript-events mouseevent

所以我有一个<div>元素在我的脚本中创建并附加到另一个<div>。我有:

 coverElm.onmousedown = mouseDownEventHandeler;
 document.onmouseup = mouseUpEventHandeler;
 document.onmousemove = mouseMoveEventHandeler;

我定义了函数并且运行良好,并使用布尔值mouseDown跟踪鼠标是否已关闭。

问题 - 当按下鼠标并释放鼠标时,永远不会处理document.onmouseup。我认为这是因为它拖累了<div>女巫中的任何内容只是文字的几个字。我也没有文字这个问题。

所以我正在寻找的方法是防止这种奇怪的拖拽行为,或者是onmousedrag查看鼠标是否被按下的方法 - 不使用鼠标和鼠标下方法< /强>

[编辑]以下是我的功能:

 function mouseUpEventHandeler(e) {
        mouseDown = false;
}
function mouseDownEventHandeler(e) {
        mouseDown = true;
}
function mouseMoveEventHandeler(e) {
        if (mouseDown) {
               coverElm.innerHTML ="<p>Mouse down and dragging</p>";
        }
}

2 个答案:

答案 0 :(得分:2)

$j(divID).bind('dragstart', function (event) { event.preventDefault() });

全部谢谢

答案 1 :(得分:1)

90%的时间,这是因为拖动的元素位于具有mouseup事件侦听器的元素的前面,因此下面的父元素永远不会获取事件。

通常,这可以通过使用addEventListener而不是事件的内联形式来修复。解决此问题的另一种方法是在释放鼠标时为拖动的元素提供eventListener。此外,只要元素开始拖动(通过div属性),就可以将zIndex置于所有其他元素的前面。

编辑:我掀起了一些概念验证代码: http://jsfiddle.net/2BkEM/5/