如果按下按钮10秒钟,按钮功能?

时间:2014-12-15 14:58:54

标签: javascript jquery

我只是在用户按下/点击按钮10秒钟时才试图找到执行按钮功能的方法。

正常的按钮功能是:

$( "#target" ).click(function() {
alert( "Handler for .click() called." );
});

所以有没有办法计算用户按下按钮和KEPT按下的时刻(连续按下而不点击不敲击),当秒数达到10时,该功能将执行?

5 个答案:

答案 0 :(得分:5)

您需要定时器,在按住鼠标时设置定时器,在释放鼠标时将其清除。

$( "#target" ).on({
    mousedown: function() {
        $(this).data('timer', setTimeout(function() {
              foo();
        }, 60000));
    },
    mouseup: function() {
        clearTimeout( $(this).data('timer') );
    }
});

FIDDLE

答案 1 :(得分:0)

你必须使用mousedown和mouse up而不是click事件,

var timeOut = 0;
$("#target").mousedown(function () {
    clearTimeout(timeOut);
    timeOut = setTimeout(function () {
        console.log("Handler for .click() called.");
    }, 10000);
});
$(document).mouseup(function () {
    clearTimeout(timeOut);
    console.log("stop");
})

<强> DEMO

答案 2 :(得分:0)

jQuery LongPress插件将为您处理此问题。

https://github.com/vaidik/jquery-longpress

您可以在执行功能之前设置延迟参数。

答案 3 :(得分:0)

JS

var threshold = 10000, timeOne, timeTwo;
$('#t10').mousedown(function(){
    timeOne = new Date();
}).mouseup(function(){
    timeTwo = new Date();
    if(timeTwo - timeOne >= threshold){
        alert('Do what you want');
        timeOne = 0;
    }else{
        console.log('Released early');
    }
});

HTML

<button  id="t10">XX</button>

小提琴 的 http://jsfiddle.net/5z94y2z5/

答案 4 :(得分:0)

您需要使用mousedown和mouseup事件

http://api.jquery.com/mousedown/ http://api.jquery.com/mouseup/

&#13;
&#13;
var pressedtensecondos = false;
var timer = null;

$( "#target" ).mousedown(function() {
  timer = setTimeout(function() { pressedtensecondos = true; }, 10000);
});

$( "#target" ).mouseup(function() {
  clearTimeout(timer);
  
  if(pressedtensecondos)
    alert('ten seconds');

  pressedtensecondos = false;
});
&#13;
&#13;
&#13;