2012-09-04 39 views
2

我有一個點擊方法的按鈕+鏈接,動畫的東西作爲點擊的結果。但是,我希望它只能使用一次。點擊後,我設法禁用了按鈕,所以這很好。但是我在鏈接上嘗試了.disabled = true,它不起作用。有沒有辦法阻止它被多次點擊?我將如何阻止點擊方法不止一次地工作?

JS

$('#frontbutton, #loginlink').on('click', function(){ 
    $('.popup').hide(); 
    usernameInput.val(''); 
    emailInput.val(''); 
    passwordInput.val(''); 
    confirmInput.val(''); 
    $('.intro').animate({opacity: '0.5'}, 1000).delay(800).animate({ 
     left: "+=300px" 
    }); 
    setTimeout(function(){ 
     $('.formholder').show()}, 2000); 
    $('.toppic').animate({opacity: '0.5'}, 1000).delay(800).animate({ 
     top: "+=300px" 
    }); 
    document.getElementById('frontbutton').disabled = true; 
}); 
+1

您可以使用['one'(http://api.jquery.com/one/)方法。 – undefined

+0

計算點擊次數並將其存儲在一個對象。上即可查看對象的值,如果clickTrack> 1返回錯誤否則返回(你的函數) –

回答

5

只需使用.one()代替.on()

$('#frontbutton, #loginlink').one('click', function(){ 

.one()行爲就像.on(),但處理程序解除綁定本身一旦被調用。

1

與jQuery你可以把活動推遲這樣

$('#frontbutton, #loginlink').on('click.myEventNamespace',function(){ 
     //Run my code 
     $('#frontbutton, #loginlink').off('click.myEventNamespace'); 
}); 

您還可以在事件中做到這一點。認爲它可能是值得知道的,當你不使用jQuery

this.removeEventListener('click',arguments.callee,false);