Mousedown Timer使用JavaScript / jQuery

如何知道用户按住鼠标按钮的时间长度(网页上的任何位置)? 我想在用户按住鼠标按钮至少2-3秒时执行一个function(最好在此过程中取消鼠标按下)。 这可能吗?

干得好:

$(window).mousedown(function(e) { clearTimeout(this.downTimer); this.downTimer = setTimeout(function() { // do your thing }, 2000); }).mouseup(function(e) { clearTimeout(this.downTimer); }); 

现场演示: http //jsfiddle.net/simevidas/Pe9sq/2/

我会用jQuery和$("body").mouseup(function(){})来试验$("body").mousedown(function(){}) $("body").mouseup(function(){}) 。 我想你可以启动一个定时器,它会在2到3秒内调用function。 如果发生mouseup事件,则可以取消计时器。 您可以使用简单的脚本对其进行测试,但您可能必须查看可能发生了click情况,因为在页面上单击了链接或按钮。 但作为一个起点,我将尝试使用$("body").mousedown$("body").mouseup 。 如果我有机会,我会看看是否可以发送代码示例。

试试这个:

 function WhateverYoudLikeToExecWithinNext3Seconds(){ // Code goes here. } element.addEventListener('mousedown', function(){ setTimeout(function(){WhateverIdLikeToExecWithin3Seconds();}, 3000); }, false); 

看看这一个。 http://jsfiddle.net/b1Lzo60n/

Mousedown启动一个计时器,检查1秒后鼠标是否仍然熄灭。

  

码:

 var mousedown = false; var mousedown_timer = ''; $('#button').mousedown(function(e) { mousedown = true; $('#log').text('mousedown...'); mousedown_timer = setTimeout(function() { if(mousedown) { $('#log').text('1 second'); } }, 1000); }).mouseup(function(e) { mousedown = false; clearTimeout(mousedown_timer); $('#log').text('aborted'); });