jquery .remove在加载新内容时需要帮助

时间:2011-02-07 13:27:32

标签: jquery

我的网站上有以下code(摘要):

CSS:

#something li{
    display:block;
    width:200px;
    height:100px;
    margin:5px;
    border:1px solid #ccc;
    background:#eee;
    padding:5px;
}
.delete{

}

HTML:

<a class="addnew" href="#">Add new</a>
<ul id="something">
    <li><a class="delete" href="#">Delete</a></li>
    <li><a class="delete" href="#">Delete</a></li>
</ul>

JavaScript:

jQuery(document).ready(function($) {
    $('.delete').click(function(){
        $(this).parent().remove();
        return false;
    });

    $('.addnew').click(function(){
            $('ul#something').append('<li><a class="delete" href="#">Delete</a></li>');
        return false;
    });
});

我可以通过点击添加项目添加新的列表项目,但是当我尝试删除它时,我不能。有解决方案吗?

1 个答案:

答案 0 :(得分:1)

工作示例:http://jsfiddle.net/VgPsR/4/

$('.delete').click(function(){
    ...
});

绑定像这样的事件处理程序只影响当前在DOM中的那些元素。以后动态元素将不具有此处理程序。要将处理程序附加到当前和未来元素,您需要使用jQuery.live

$('.delete').live('click', function(){
    ...
});