0

マウス ボタンを長押しすると (700 ミリ秒)、そのテキストに対してテキスト エディターがアクティブになるというテキストがあります。この間 (マウスが押されたとき)、マウスの位置が移動したかどうかを確認する必要があります。問題は、イベントが1つしかなく、マウスダウンが押されたということです。

マウスが移動したかどうかを確認するにはどうすればよいですか? 新しいイベントに参加しようとしましたが、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 に答える