【问题标题】:How To Call A Function After 'X' seconds Of onmousedown event [closed]如何在“X”秒 onmousedown 事件后调用函数 [关闭]
【发布时间】:2013-04-29 04:48:45
【问题描述】:

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

【问题讨论】:

  • 未显示任何尝试/努力/研究。
  • 在发布问题之前最好先搜索并尝试自己写一些。不管怎样,你可以试试这个链接:stackoverflow.com/questions/9371280/…
  • Google 是您的最佳向导。

标签: javascript function dom-events


【解决方案1】:
(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);
})();

检查它是否正常工作here

【讨论】:

  • 答案的第一个版本只是在按下后 2 秒执行 someFunction 。此新版本仅在按住按钮 2 秒后执行该功能。
【解决方案2】:
$('div.target').primarydown( function() {
    released = false;
    $(this).primaryup( function() {
      released = true;
    });
    setTimeout( function() {
      if( released ) return;
      else {
         // call required function
      }
     }, 1000 /* timeout */ );
});

【讨论】:

    【解决方案3】:

    调用 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);
    }
    });
    

    【讨论】:

      猜你喜欢
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多