一旦用戶點擊了按鈕,如何讓用戶點擊事件不可點擊幾秒鐘?如何讓用戶點擊事件不可點擊幾秒鐘?
例如,
$('button').on('click',function(){
alert('you clicked');
}
它每次都會發出警報。但是我想讓這個按鈕變成其他東西,不管我已經指定了點擊事件,例如,如果用戶在接下來的20秒內再次點擊它應該不起作用,並且在20秒後按鈕應該是可點擊的,即如果用戶點擊20秒後再次發出警報。
一旦用戶點擊了按鈕,如何讓用戶點擊事件不可點擊幾秒鐘?如何讓用戶點擊事件不可點擊幾秒鐘?
例如,
$('button').on('click',function(){
alert('you clicked');
}
它每次都會發出警報。但是我想讓這個按鈕變成其他東西,不管我已經指定了點擊事件,例如,如果用戶在接下來的20秒內再次點擊它應該不起作用,並且在20秒後按鈕應該是可點擊的,即如果用戶點擊20秒後再次發出警報。
未經測試,但:
var isClickable = true;
$('button').on('click',function(){
//Exit if not clickable
if(!isClickable)
return false;
//Set not clickable
isClickable = false;
//And finally plan to reset clickable in 20 seconds
setTimeout(function(){isClickable=true;},20000);
//Then, your code
alert('you have just clicked');
}
$('button').on('click',function(){
alert('you clicked');
$(this).prop("disabled", true);
setTimeout(function(){$(this).prop("disabled", false);},20000);
}
好主意。不確定this.attr()在任何情況下都適用。 – sdespont
$('button').on('click', function(){
var _$this = $(this);
if(!_$this.data('blocked')) {
alert('you clicked');
_$this.data('blocked', true);
setTimeout(function() {
_$this.data('blocked', false);
}, 5000); // in miliseconds
}
});
你可以試試這個
var seconds = 5; //seconds to disable a button
$('#yourbutton').click(function(){ //yourbutton is the id of button
var btn = $(this);
btn.prop('disabled', true); //disables the buttons
setTimeout(function(){ //renable the button after seconds specified
btn.prop('disabled', false);
}, seconds*1000);
});
你見過的setTimeout()函數。它可以幫助您以秒爲間隔註冊點擊事件。 –
如果你可以使用下劃線然後看看http://underscorejs.org/#throttle –
看到http://jsfiddle.net/arunpjohny/ZxT3L/1/ –