我一直在研究这个问题,但似乎无法让它发挥作用。我的问题在于没有删除css类。
jQuery$(document).ready(function(){
$('#about').click(function(){
$('#about').addClass('bookOpen').before('<a href="#" class="closeButton">Close</a>');
});
$('.closeButton').click(function(){
$(this).next().removeClass('bookOpen');
});
});
答案 0 :(得分:4)
您需要使用.live
而不是.click
,因为您正在动态添加DOM元素。
$('.closeButton').live('click', function() {
$(this).next().removeClass('bookOpen');
});
答案 1 :(得分: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');
});
});
答案 2 :(得分: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');
});
});
答案 3 :(得分:0)
当您向DOM动态添加内容时,需要将任何jquery触发器重新添加到新的DOM中。