删除加载的jQuery AJAX元素

时间:2010-10-26 20:40:21

标签: jquery ajax dialog

我正在处理一个包含AJAX加载内容的对话框,但我无法将其删除。 必须有一个多个,php支持,可拖动和可关闭的对话框 (。center()函数存在)

$('a.event').click(function() {
    var url = this.href;
    var getrel = $(this).attr('rel');
    var getid = $(this).attr('id');
    var dialog = $('<div id="event_'+getid+'" class="izModal '+getrel+'"></div>').appendTo('body');
    dialog.load( url, {}, function (responseText, textStatus, XMLHttpRequest) { $('#event_'+getid+'').append("<a class='close' rel='"+getid+"'>x</a>"); } ).center().draggable();
    return false;
});

关闭它:

        $('a.close').click(function(event){
            var getevent = $(this).attr('rel');
            $('#event_'+getevent+'').hide();
        });

我已经尝试过(如您所见)给每个对话框一个id来关闭它。 还尝试使用 this.parent 隐藏(),更改CSS并删除()

有人能发现错误吗? 提前谢谢。

1 个答案:

答案 0 :(得分:4)

您正在动态创建链接,您需要像.live()这样的方法,如下所示:

$('a.close').live('click', function(event){
  var getevent = $(this).attr('rel');
  $('#event_'+getevent+'').hide();
});

当使用$('a.close').click()时,您正在查找运行时存在的元素,稍后创建的新元素将不会有click处理程序,{{3通过依赖事件冒泡来解决这个问题...所以它适用于稍后创建的元素。