簡體   English   中英

為什么在更改按鈕類后點擊功能不起作用?

[英]Why does the click function not work after I change the class of a button?

我有一組用戶點擊的按鈕(上一個和下一個)。

<a id="prev_btn" class="prev_1" href="#">Previous</a>
<a id="next_btn" class="next_1" href="#">Next</a>

當用戶單擊下一個按鈕(.next_1)時,它會將按鈕的類名更改為next_2,並將上一個按鈕(.prev_1)更改為prev_2。 更改類名后,為prev_2設置的單擊功能不起作用。

$('.next_1').click(function() {
  $('#next_btn').removeClass('next_1').addClass('next_2');
  $('#prev_btn').removeClass('prev_1 inactive').addClass('prev_2');
});

$('.prev_2').click(function() {
  alert('this works');
});

為什么在使用jquery更改類后,click函數不起作用?

那是因為綁定是在加載時定義的。 如果您希望它們動態工作,請通過LIVE綁定點擊。

$('.prev_2').live('click', function() {
       alert('hi!');
});

聽起來你對這里的評估時間感到困惑; $('.prev_2')獲取當前具有'prev_2'類的所有元素,並將給定的操作應用於它們; 無論在此類中添加或刪除哪些元素,它都不是一個有效的聲明。

如果您想要一個基於類的處理程序,您可以在文檔級別注冊一個onclick處理程序,並測試事件目標的類並相應地分派。 但是,僅使用特定按鈕注冊單擊函數更簡潔,並且在該處理程序中,在執行之前測試按鈕的類。

$('.prev_2').click(...)被執行時,‘上一個’按鈕不具備prev_2類,所以它不分配單擊處理程序,只thingas 目前有CALSS當.click 調用方法將具有該處理程序綁定。

您希望查看.live jquery函數以獲得您要查找的內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM