我想在用户按住按钮“x”秒后调用一个函数。请帮忙。
问问题
2416 次
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 回答