2011-05-22 49 views

回答

14

在这里你去:

$(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/

+0

完美,谢谢! – 2011-05-22 22:19:54

1

不用手我会试用$("body").mousedown(function(){})使用jQuery和$("body").mouseup(function(){})。我想你可以启动一个定时器,它会在2到3秒内调用函数。如果mouseup事件发生,那么您可以取消定时器。您可以使用一个简单的脚本来测试它,但是您可能需要查看可能由于在页面上单击了链接或按钮而发生了click的情况。但作为一个起点,我会尝试$("body").mousedown$("body").mouseup。如果我有机会,我会看看我是否可以发送代码示例。

0

试试这个:

function WhateverYoudLikeToExecWithinNext3Seconds(){ 
    // Code goes here. 
} 

element.addEventListener('mousedown', function(){ 
    setTimeout(function(){WhateverIdLikeToExecWithin3Seconds();}, 3000); 
}, false); 
0

退房这一个。 http://jsfiddle.net/b1Lzo60n/

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

<button id="button">Press me</button> 
<div id="log"></div> 

代码:

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