如何在文档准备好后添加按类名添加的元素?

时间:2013-05-28 16:56:49

标签: javascript jquery

我正在尝试通过我在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');
});

 })

2 个答案:

答案 0 :(得分:5)

要绑定到新元素,请使用委托:

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

答案 1 :(得分:1)

您的代码看起来有点乱,我建议您使用数据api,您的元素可以使用data-nameOfYourAttribute ='Value'设置属性。您可以在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);
    };
});

希望有所帮助