在这种情况下如何正确使用jQuery删除

时间:2011-06-06 20:12:59

标签: jquery

我有以下小提琴http://jsfiddle.net/ycysD/1/,其中我尝试使用funcion删除DOM的元素,我也有两个执行此函数的事件,两者都做同样的事情然而在一个casi中它失败< / p>

对不起,请告诉我您是否需要其他信息

2 个答案:

答案 0 :(得分:3)

不知道这是否是正确的行为,但这是我改变的内容:

function closeMediaList(what){
    $('.media-list-display').fadeOut(function(){
        what.remove();
    });
};

what是被删除的对象,因此不只是调用:

closeMedialList();

你打电话:

closeMediaList($(this));

以下是更改内容的演示:http://jsfiddle.net/t4u33/

答案 1 :(得分:0)

该行为是由代码中的冲突引起的。单击关闭按钮后,您将创建并删除新的.media-list-display

 _close.bind('click',function(e){
//This line removes the .media-list-display div when 
//the close button is clicked

$('.media-list a').live('click',function(e){
//This line adds a new .media-list-display div when any `<a>` 
//inside .media-list is clicked.

问题是关闭按钮在<a>内也是.media-list所以当点击它时会触发这两个事件,从而创建一个无限循环的删除和创建。

检查此link,并提供有关冲突部分的提醒。