我能够使用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次(时间间隔很短),它应该只在第十次点击时触发一个事件。
答案 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);
})