Javascript 当用户停止单击时触发事件
我能够使用jQuery检测按钮上的clikJavascript 当用户停止单击时触发事件,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我能够使用jQuery检测按钮上的clik $('#myButton').click(function(){ // do something }); 但是,当用户多次单击按钮时,它会触发不必要的中介事件 我只想在最后一次点击按钮时触发事件 差不多 $('#myButton').lastClickOnASequenceOfClicks(function(){ // ignore the multiple clicks followed // do something only on
$('#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次(间隔一点时间),它应该只在第十次单击时触发事件。每次单击都会重置计时器
var timer;
$("#myButton").click(function () {
var timeToWait = 1000;
clearTimeout(timer);
timer = setTimeout(function () {
// do something only on the last click
}, timeToWait);
}
更新
解决此问题的另一种方法是处理用户生成的“多次单击事件”,即执行OP comments部分中提到的操作<代码>在第一次单击时执行操作,然后禁用按钮,这样用户就不能再单击它了(也可以设置按钮再次启用的时间)
每次单击都会重置计时器
var timer;
$("#myButton").click(function () {
var timeToWait = 1000;
clearTimeout(timer);
timer = setTimeout(function () {
// do something only on the last click
}, timeToWait);
}
更新
解决此问题的另一种方法是处理用户生成的“多次单击事件”,即执行OP comments部分中提到的操作<代码>在第一次单击时执行操作,然后禁用按钮,这样用户就不能再单击它了(也可以设置按钮再次启用的时间)
每次单击都会重置计时器
var timer;
$("#myButton").click(function () {
var timeToWait = 1000;
clearTimeout(timer);
timer = setTimeout(function () {
// do something only on the last click
}, timeToWait);
}
更新
解决此问题的另一种方法是处理用户生成的“多次单击事件”,即执行OP comments部分中提到的操作<代码>在第一次单击时执行操作,然后禁用按钮,这样用户就不能再单击它了(也可以设置按钮再次启用的时间)
每次单击都会重置计时器
var timer;
$("#myButton").click(function () {
var timeToWait = 1000;
clearTimeout(timer);
timer = setTimeout(function () {
// do something only on the last click
}, timeToWait);
}
更新
解决此问题的另一种方法是处理用户生成的“多次单击事件”,即执行OP comments部分中提到的操作<代码>在第一次单击时执行操作,然后禁用按钮,这样用户就不能再单击它了(也可以设置按钮再次启用的时间)
设置点击超时?@FélixGagnon Grenier你的意思是“保存”最后一次点击的时间并进行比较?我想了,但是我怎么知道我是否在最后一次点击?必须停止单击,等待,然后再次单击…如果您只想在最后一次单击时触发事件,您将始终需要等待一段时间,以查看是否再次单击。为什么不在第一次单击时启动,然后在一段时间内禁用按钮?@76484例如,如果我有一个产品列表,并且按钮在一个div上加载下一个产品。然后,如果用户快速单击多次,则加载每个产品或阻止按钮将降低用户的体验。。。有几种情况是这样的……单击时设置超时?@FélixGagnon Grenier你的意思是“保存”最后一次单击的时间并进行比较?我想了,但是我怎么知道我是否在最后一次点击?必须停止单击,等待,然后再次单击…如果您只想在最后一次单击时触发事件,您将始终需要等待一段时间,以查看是否再次单击。为什么不在第一次单击时启动,然后在一段时间内禁用按钮?@76484例如,如果我有一个产品列表,并且按钮在一个div上加载下一个产品。然后,如果用户快速单击多次,则加载每个产品或阻止按钮将降低用户的体验。。。有几种情况是这样的……单击时设置超时?@FélixGagnon Grenier你的意思是“保存”最后一次单击的时间并进行比较?我想了,但是我怎么知道我是否在最后一次点击?必须停止单击,等待,然后再次单击…如果您只想在最后一次单击时触发事件,您将始终需要等待一段时间,以查看是否再次单击。为什么不在第一次单击时启动,然后在一段时间内禁用按钮?@76484例如,如果我有一个产品列表,并且按钮在一个div上加载下一个产品。然后,如果用户快速单击多次,则加载每个产品或阻止按钮将降低用户的体验。。。有几种情况是这样的……单击时设置超时?@FélixGagnon Grenier你的意思是“保存”最后一次单击的时间并进行比较?我想了,但是我怎么知道我是否在最后一次点击?必须停止单击,等待,然后再次单击…如果您只想在最后一次单击时触发事件,您将始终需要等待一段时间,以查看是否再次单击。为什么不在第一次单击时启动,然后在一段时间内禁用按钮?@76484例如,如果我有一个产品列表,并且按钮在一个div上加载下一个产品。然后,如果用户快速单击多次,则加载每个产品或阻止按钮将降低用户的体验。。。有几种情况是这样的……这不起作用,因为每次单击都要声明一个新的计时器变量。“var timer”应该移到click事件处理程序之外!抢手货我看着它,似乎有点不对劲,哈哈。这不起作用,因为每次单击都会声明一个新的计时器变量。“var timer”应该移到click事件处理程序之外!抢手货我看着它,似乎有点不对劲,哈哈。这不起作用,因为每次单击都会声明一个新的计时器变量。“var timer”应该移到click事件处理程序之外!抢手货我看着它,似乎有点不对劲,哈哈。这不起作用,因为每次单击都会声明一个新的计时器变量。“var timer”应该移到click事件处理程序之外!抢手货我看着它,好像有什么不对劲,哈哈。