我使它工作但问题是它只工作一次.弹出窗口出现后,链接不起作用,弹出窗口不再显示.我必须刷新才能看到这种情况正在发生.我得到了这个
http://jsfiddle.net/pjVcR/2/,它在jsfiddle内部工作,但在我的网站中它不起作用.我的网站链接在这里:
MY SITE
这是代码:
<div class="content">
<h4><a href="#" >AAAA</a></h4><img src="AAAA.jpg" />
<div class="dialog" title="AAAA" >text AAAA
</div>
</div>
<div class="content">
<h4><a href="#" >BBBB</a><br></h4><br><img src="BBBB.jpg" />
<div class="dialog" title="BBBB" >text
</div>
</div>
以及html中给出的脚本:
<script>
$("a").click(function(event) {
$(this).parent().parent().children(".dialog").dialog({
close: function( event, ui ) {
$('.dialog').dialog('destroy');
}
});
});
</script>
最佳答案 对话框类有很多元素,所以当你调用时
$('.dialog').dialog('destroy');
你正在销毁尚不存在的对话框,因此例外:
cannot call methods on dialog prior to initialization; attempted to
call method ‘destroy’
在close处理程序(这是特定的.dialog元素)中使用$(this)的本地实例,以便jQuery知道要销毁哪一个.
$("a").click(function(event) {
$(this).parent().parent().children(".dialog").dialog({
close: function( event, ui ) {
$(this).dialog('destroy');
}
});
});
请注意,如果您更改代码以使用.dialog而不是$(this),您仍然会在页面中得到相同的错误,这就是为什么你没有在jsFiddle中得到错误,因为你只有一个div在那里有班.dialog.