2017-03-29 36 views
0

我有一個由點擊觸發的功能。我想要點擊它後,禁用點擊。所以我做了這個如何禁用點擊並在以後使用jQuery重新啓用它

$('.item-blog').on('click', function(){ 

    $('.item-blog').off('click'); 

}); 

它的工作完美。

但後來,在所有事件結束時,在最後一個函數中,當我重新設置了所有的東西並且我已經運行了所有代碼時,我希望能夠重新單擊第一個函數以便再次發起相同的事件。所以我把它放在最後一個重置所有東西的函數中。

$('.item-blog').on('click'); 

但它根本不工作。

我甚至嘗試綁定和解除綁定,但每次我想重新啓用點擊,它從來沒有工作。

有幫助嗎?

非常感謝你

+1

的'.off()'方法在關燈開關的感不轉處理機關,則* *去除在拉出的意義上,處理程序燈泡和所有相關的接線。 – nnnnnn

+0

http://stackoverflow.com/questions/2459153/alternative-to-jquerys-toggle-method-that-supports-eventdata – dippas

+0

這是另一個與使用標誌而不是添加和刪除處理程序的答案重複:http:/ /stackoverflow.com/questions/38906793/event-click-on-and-off – nnnnnn

回答

0

嘗試刪除類而不是...並添加一個臨時的。
;)

$(document).on('click','.item-blog', function(){ 
    $(this).removeClass("item-blog").addClass("item-blog-disabled"); 
}); 

然後,以後,你將只能使用item-blog-disabled類重新添加類。
喜歡:

$(document).find('.item-blog-disabled').removeClass("item-blog-disabled").addClass("item-blog"); 

所以,現在,處理程序綁定到document其代表爲.item-blog它。

給你機會使用一個簡單的類去除/添加這些元素的處理程序。

+0

我知道......我剛編輯過。 –

+0

你是對的......現在好點? ;) –

0

您可以嘗試下面的onoff切換點擊。

$(document).ready(function(){ 
 

 
function toggleClick(on) { 
 

 
    if(on) { 
 
     $('.item-blog').on('click', function(){ 
 
     console.log('clicked'); 
 
     toggleClick(false); 
 

 
     }); 
 

 
    } else { 
 
     $('.item-blog').off('click'); 
 
    } 
 

 
} 
 

 
toggleClick(true); 
 

 
$('.item-blog-reset').on('click', function(){ 
 
    console.log('Reset done'); 
 
    toggleClick(true); 
 

 
}); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="button" value="Click" class="item-blog" /> 
 
<input type="button" value="Reset" class="item-blog-reset" />

+0

'.bind'和'.unbind'從jQuery 3.0開始不推薦使用。所以這不是一個長期的解決方案。 –

+0

謝謝,用'on'和'off'更新。 – Aruna

相關問題