2013-03-07 44 views
0

我有一段文字,当我长按鼠标按键(700毫秒)时,我将激活文本编辑器。在此期间(按下鼠标时),我必须检查鼠标位置是否已移动。问题是,我只有一个事件,鼠标按下事件。查找鼠标在mousedown期间是否发生了变化

如何知道鼠标是否已移动? 我试图采取新的事件,但我是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; 
    }, 
+1

http://api.jquery.com/mousemove/ – Blazemonger 2013-03-07 14:06:22

+0

我看了,但我没明白。你能帮我一点吗?我告诉过你,我是这个初学者的 – 2013-03-07 14:07:05

+0

首先复制那个页面上的例子,并与他们一起修改,看看会发生什么。 – Blazemonger 2013-03-07 14:08:05

回答

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)) 
} 

Here you can play with it yourself.

相关问题