2013-05-28 64 views
1

我想通過我在jQuery中添加的類名稱來定位一個元素。這似乎工作正常,如果我添加一個新的元素,但我不能讓新事件綁定到已經在DOM中,但已被更改的元素。如何在文檔準備好後添加通過類名添加的元素?

我在做什麼錯?

$(document).ready(function(){ 
$(".activateRow").on("click",function(){ 
    $(this).text('Deactivate').addClass('deactivateRow btn-danger').removeClass('activateRow btn-success'); 
    $(this).parent().parent().removeClass('inactiveRow'); 
}); 

$(".deactivateRow").on("click",function(){ 
    $(this).text('Activate').removeClass('deactivateRow btn-danger').addClass('activateRow btn-success'); 
    $(this).parent().parent().addClass('inactiveRow'); 
}); 

}) 

回答

5

綁定到新的元素使用委派:

$(document.body).on("click", ".deactivateRow", function(){ 
+0

謝謝。只要SO讓我接受就會接受。 – erfling

1

您的代碼似乎有點亂,我建議你使用數據API,您的元素可以與數據nameOfYourAttribute =「值設置屬性」。你可以在jQuery中使用這樣的: //這是一個getter/setter方法 $( '#myElement')的數據( 'nameOfYoutAttribute')

而對於你的問題,你可以這樣做:

$('.myRows').on('click', function() { 
    if($(this).data('activated') == false) { 
     //Do stuff 
     $(this).data('activated', true); 
    } else { 
     //Do stuff 
     $(this).data('activated', false); 
    }; 
}); 

希望它有幫助

+0

只是做一些視圖測試。最終的代碼將會更乾淨。感謝您的建議。 – erfling

相關問題