1

最近我一直在使用 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>

说明:销毁对话框后,按generate不会再次生成它们,不会返回任何错误,不胜感激。示例http://jsfiddle.net/2zGWZ/

4

3 回答 3

0

如您在此处dialog看到的,使用 ui可以正常工作。 也许这是一个错误。

于 2012-07-10T19:34:09.887 回答
0

您需要dialogr从对象中删除属性.data()

     $(this).dialogr('destroy');
     delete $(this).data().dialogr;   //deleting 'dialogr' property

现场演示

于 2012-07-10T19:21:24.867 回答
0

感谢工程师,我想出了一个可以很容易地嵌入到 dialogr() 插件中的解决方案,只需使用编辑器打开 ui.dialogr.js 并搜索:

this.element.unbind('.dialog').removeData('dialog')

然后将其替换为

this.element.unbind('.dialogr').removeData('dialogr')

对于更复杂的对话框,问题将得到解决。

于 2012-07-10T19:43:34.827 回答