有没有办法在离开文件正文时触发鼠标?

时间:2015-04-21 17:29:01

标签: javascript jquery events mouseevent mouseup

我找到了一些代码,并用它制作了jsfillde。我需要知道如何在下面的函数中触发mouseup,当您离开文档正文时(在小提琴示例中,例如将对象拖动到HTML部分,然后单击鼠标左键)。

function handleMouseMove(e) {
    if (canMove) {
        var left = getMousePosX(e);
        var top = getMousePosY(e);
        var newLeft = ($(elemToMove).css('left').toDecNum() + (left - lastPosX));
        var newTop = ($(elemToMove).css('top').toDecNum() + (top - lastPosY));

        $(elemToMove).css('left', newLeft);
        $(elemToMove).css('top', newTop);
        lastPosX = left;
        lastPosY = top;
    }

    return false;
}

感谢您的任何建议。

3 个答案:

答案 0 :(得分:1)

您可以使用

document.onmouseout = handleMouseUp;

这表示当鼠标离开文档对象时,应该调用handleMouseUp处理程序。

更新小提琴: http://jsfiddle.net/vp14utt1/1/

-

P.S。对于简单地将事件作为参数的事件处理程序,您只需使用函数名称而不包装它。

document.onmousedown = function (e) { handleMouseDown(e); };
document.onmousedown = handleMouseDown;

答案 1 :(得分:0)

$(elemToMove).trigger('mouseup');

应该这样做。

答案 2 :(得分:0)

添加此行(new Fiddle):

document.onmouseleave = function (e) { handleMouseUp(e); };

当鼠标从浏览器窗口拖出时,会触发“鼠标按下”逻辑。

引用The difference between mouseout() and mouseleave()

  

当鼠标指针离开任何子元素以及所选元素时,mouseout事件会触发。

     

只有当鼠标指针离开所选元素时才会触发mouseleave事件。

我想你想要后者。