删除加载的jQuery AJAX元素

删除加载的jQuery AJAX元素

问题描述:

我正在处理由AJAX加载的内容的对话框,但我无法删除它。 一个必须是有一个多个,php支持的,可拖拽和可关闭的对话框。
(.center()函数存在)删除加载的jQuery AJAX元素

$('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.parenthide(),更改CSS和删除()

有人可以发现错误吗? 在此先感谢。

+0

你还可以在应用程序中添加实际插入的HTML块吗?如果您使用Firefox并且尚未使用该插件,请尝试使用FireBug,否则您应该可以右键单击并选择“检查元素”以获取插入的HTML。 '你能为我们插入两个这些块吗?实际活块“ – jcolebrand 2010-10-26 20:42:11

+0

Nick Craver给出了正确答案!我已经使用这些插件(在Chrome中),一切正常,但现在它已经修复了!只需等到我能接受答案。谢谢大家! – vonUbisch 2010-10-26 20:50:32

你动态创建的链接你需要像一个.live()方法,像这样:

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

当使用$('a.close').click()你发现存在的元素时,它的运行,新元素稍后创建的将不会有click处理程序,.live()通过依赖事件冒泡来解决此问题...所以它可以在稍后创建的元素上起作用。

+0

好的电话尼克,我没有注意到那个消息 – jcolebrand 2010-10-26 20:45:30