有没有办法在离开文档正文时触发 mouseup?

Is there a way to trigger mouseup when leaving the document body?

我找到了一些代码,并用它制作了一个 jsfillde。我需要知道如何在下面的函数中触发 mouseup,当您离开文档正文时(在 fiddle 示例中,这就像将对象拖动到 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;
}

感谢任何建议。

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

应该做。

您可以使用

document.onmouseout = handleMouseUp;

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

已更新fiddle: http://jsfiddle.net/vp14utt1/1/

-

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

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

添加这一行 (new Fiddle):

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

当鼠标从浏览器中拖出时,这会触发您的 'mouse up' 逻辑 window。

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

The mouseout event triggers when the mouse pointer leaves any child elements as well the selected element.

The mouseleave event is only triggered when the mouse pointer leaves the selected element.

我想你想要后者。