用户停止点击时的火灾事件

时间:2014-08-01 22:41:51

标签: javascript jquery javascript-events

我能够使用jQuery检测按钮上的clik

$('#myButton').click(function(){
  // do something
});

但是,当用户点击按钮多次时,它会触发不必要的中介事件。

我想只在最后一次按下按钮时触发事件。

这样的东西
$('#myButton').lastClickOnASequenceOfClicks(function(){
  // ignore the multiple clicks followed
  // do something only on the last click of a sequence of clicks
});

这样,如果用户点击了10次(时间间隔很短),它应该只在第十次点击时触发一个事件。

1 个答案:

答案 0 :(得分:3)

每次点击都会重置计时器。

var timer;

$("#myButton").click(function () {
    var timeToWait = 1000;
    clearTimeout(timer);
    timer = setTimeout(function () {
        // do something only on the last click
    }, timeToWait);
}

<强>更新

另一种解决处理多次点击事件问题的方法&#39;用户生成的是执行OP注释部分中提到的内容。第一次单击时do something然后禁用该按钮,以便用户不再单击它(也可能设置按钮再次启用的时间)

var timer, timeToWait = 5000, selector ="#myButton";

$(selector).click(function (e) {
    $(this).attr("disabled", "disabled");
    // do something
    // Then wait a certain amount of time then remove the disabled attr on your button
    timer = setTimeout(function () {
        $(selector).removeAttr("disabled");
    }, timeToWait);
})