如何在jquery中的mousedown事件中计算时间?

我试图在mousedown – up事件上的一个按钮上做两个不同的function。 但它无法工作,因为我无法检测到mousedown事件的时间。

var flag; $("#ClikerButton").mousedown(function(e){ //if mouse pressed more than 2 sec, then // do func1 and set flag = true; //else do nothing }).mouseup(function(e){ //if flag == true, do nothing, //else do func2; }); 

您可以使用:

 $(window).mousedown(function(e) { clearTimeout(this.downTimer); this.downTimer = setTimeout(function() { alert('mousedown > 2 sec'); }, 2000); }).mouseup(function(e) { clearTimeout(this.downTimer); });​ 

小提琴: http //jsfiddle.net/simevidas/Pe9sq/2/

参考: 检测mousedown事件的时间

没有’jQuery’魔法,只有JavaScript定时器。

 var pressTimer $("a").mouseup(function(){ clearTimeout(pressTimer) // Clear timeout return false; }).mousedown(function(){ // Set timeout pressTimer = window.setTimeout(function() { ... your code ...},1000) return false; }); 

这里是参考链接https://stackoverflow.com/questions/2625210/long-press-in-javascript/2625240#2625240

 var flag, flag2; $("#ClikerButton").on({ mousedown : function(){ flag = new Date().getTime(); }, mouseup: function(){ flag2 = new Date().getTime(); var passed = flag2 - flag; console.log(passed); //time passed in milliseconds } });​ 

小提琴