2012-07-10 107 views
1

最近我一直在使用jQuery UI对话框()插件,尽管我遇到了有关销毁和重新调用$(foo).dialogr( args)函数,因为它在被销毁后不再创建对话框。jQuery UI Dialogr()插件销毁事件

$(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

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

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

然后替换为

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

问题将解决更复杂的对话框。

0

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

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

Live demo

0

它工作正常使用的UI dialog,你可以看到here
也许这是一个错误。

+0

我也检查过用户界面对话框,因为它是一个UI错误,但它是一个插件错误。 – Eduard 2012-07-10 19:40:07