0

我有一个文本,当我长按鼠标按钮(700 毫秒)时,我将在该文本上激活一个文本编辑器。在此期间(按下鼠标时),我必须检查鼠标位置是否移动。问题是,我只有一个事件,鼠标按下事件。

如何判断鼠标是否被移动?我试图参加一个新活动,但我是 jquery 的初学者,所以我无法实现我想要的。

这是我获得事件的功能。

  onTaskItemMouseDown: function (event) {

        // We only check the left click
        if (event.button !== 0) { return true; }

        var that = this,
            initialX = event.pageX,
            initialY = event.pageY;

        // Set timeout
        console.log("x=" + initialX);
        console.log("y=" + initialY);
        this.pressTimer = window.setTimeout(function () {


            clearTimeout(that.pressTimer);
            that.pressTimer = 0;
            that.onEditTask(event, that.$(event.currentTarget).closest(".task").find(".dropdown-container").data("task-id"));
        }, MindomoUtils.longClickDuration);

        return true;
    },
4

1 回答 1

1

您可能正在寻找 mousemove 事件。

我可以看到您已经在使用 jQuery,所以这里有一个示例。

用于输出的 HTML

<ul class="output"></ul>

jQuery

$(document).on('mousedown', onMouseDown)
$(document).on('mousemove', onMouseMove)
$(document).on('mouseup', onMouseUp)

var mouseIsDown = false

function onMouseDown(event) {
    // set boolean true
    mouseIsDown = true
    $('.output').append($('<li>').text('Mouse down - x: ' + event.pageX + ' y: ' + event.pageY))
}

function onMouseMove(event) {
    if(mouseIsDown) {
        $('.output').append($('<li>').text('Mouse moving - x: ' + event.pageX + ' y: ' + event.pageY))
    }
}

function onMouseUp(event) {
    // set boolean false again
    mouseIsDown = false
    $('.output').append($('<li>').text('Mouse up - x: ' + event.pageX + ' y: ' + event.pageY))
}

在这里你可以自己玩。

于 2013-03-07T14:13:46.320 回答