最近我一直在使用jQuery UI dialogr()插件,虽然我遇到了关于销毁和重新调用$(foo).dialogr(args)函数的问题,因为它不是在被销毁后再次创建对话框。
$(document).ready(function(){
$('#init').click(function(){
$('.test').dialogr();
});
$('#destroy').click(function(){
$('.test').each(function(){
$(this).dialogr('destroy');
})
});
});
以下是一个简单的对话框代码,我用它来解释会发生什么
<a href="#" id="init">generate</a>
<a href="#" id="destroy">destroy</a>
<div class="test" title="test dialog 1">
test dialog 1
</div>
<div class="test" title="test dialog 2">
test dialog 2
</div>
说明:在销毁对话框后,按生成不再生成它们,不返回任何错误,任何意见表示赞赏。样本http://jsfiddle.net/2zGWZ/
答案 0 :(得分:0)
您需要从dialogr
对象中删除.data()
属性:
$(this).dialogr('destroy');
delete $(this).data().dialogr; //deleting 'dialogr' property
答案 1 :(得分:0)
使用ui dialog
可以正常工作,因为您可以看到here
也许这是一个错误。
答案 2 :(得分:0)
感谢工程师,我想出了一个可以轻松隐含在dialogr()插件中的解决方案,只需用编辑器打开ui.dialogr.js并搜索:
this.element.unbind('.dialog').removeData('dialog')
然后用
替换它this.element.unbind('.dialogr').removeData('dialogr')
对于更复杂的对话框,问题将得到解决。