我正在处理一个包含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并删除()。
有人能发现错误吗? 提前谢谢。
答案 0 :(得分:4)
您正在动态创建链接,您需要像.live()
这样的方法,如下所示:
$('a.close').live('click', function(event){
var getevent = $(this).attr('rel');
$('#event_'+getevent+'').hide();
});
当使用$('a.close').click()
时,您正在查找运行时存在的元素,稍后创建的新元素将不会有click
处理程序,{{3通过依赖事件冒泡来解决这个问题...所以它适用于稍后创建的元素。