-5

我想在用户按住按钮“x”秒后调用一个函数。请帮忙。

4

3 回答 3

4

调用 setTimeout() 以在 3000 毫秒后执行您的操作,将来自 setTimeout() 的标识符存储到函数上方的变量中。在元素的 mouseup() 上,通过 clearTimeout() 清除超时(如果存在)。

var divMouseDown;
$('#div-id').mousedown(function() {
divMouseDown = setTimeout(function() {
 // Do timeout action...
}, 3000);
});
$('#div-id').mouseup(function() {
if (divMouseDown) {
 clearTimeout(divMouseDown);
}
});
于 2013-05-05T05:43:51.357 回答
2
(function () {
function someFunction()
{
    alert("do something");
}

var x = 2000; // 2000 miliseconds = 2 seconds
var mousePressed = false;
var timePressed = 0;
var timeHolding = 0;

function check(){
    timeHolding = new Date().getTime() - timePressed;        
    if(timeHolding >= x){
        someFunction();
    }
}    
window.addEventListener('mousedown', function () {         
    if(!mousePressed){
        mousePressed = true; 
        timePressed = new Date().getTime(); // or Date.now()        
        setTimeout(function(){ check() }, x);
    }
}, false);

window.addEventListener('mouseup', function () {         
    mousePressed = false;        
    timePressed = new Date().getTime(); 
}, false);
})();

检查它在这里工作。

于 2013-05-05T05:40:41.590 回答
0
$('div.target').primarydown( function() {
    released = false;
    $(this).primaryup( function() {
      released = true;
    });
    setTimeout( function() {
      if( released ) return;
      else {
         // call required function
      }
     }, 1000 /* timeout */ );
});
于 2013-05-05T05:51:58.407 回答