2011-03-02 107 views
1

我一直在这一点上工作了一下,只是似乎无法得到它的工作。我的问题在于css类未被删除。Jquery删除类与点击

jQuery$(document).ready(function(){ 
    $('#about').click(function(){ 
     $('#about').addClass('bookOpen').before('<a href="#" class="closeButton">Close</a>'); 
    }); 

    $('.closeButton').click(function(){ 
     $(this).next().removeClass('bookOpen');   
    }); 
}); 
+1

你试过.live()吗? 尝试每次点击都是这样调用: $('#about')。live(“click”,function(){ – orolo 2011-03-02 21:19:09

回答

4

您需要使用.live而不是.click因为你是动态添加的DOM元素。

$('.closeButton').live('click', function() { 
    $(this).next().removeClass('bookOpen'); 
}); 
0

当你动态地添加一些东西到DOM,你需要重新添加任何的jQuery将触发对新作品的DOM。

2

使用live()

$(document).ready(function() { 
    $('#about').click(function() { 
     $('#about').addClass('bookOpen').before(
      '<a href="#" class="closeButton">Close</a>'); 
    }); 
    $('.closeButton').live('click', function() { 
     $(this).next().removeClass('bookOpen'); 
    }); 
}); 
1

使用live

jQuery$(document).ready(function(){ 
    $('#about').click(function(){ 
     $('#about').addClass('bookOpen').before('<a href="#" class="closeButton">Close</a>'); 
    }); 

    $('.closeButton').live('click', function(){ 
     $(this).next().removeClass('bookOpen');   
    }); 
});