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>

説明:ダイアログを破棄した後、生成を押してもエラーが返されることなく、ダイアログが再度生成されることはありません。ご意見をいただければ幸いです。サンプルhttp://jsfiddle.net/2zGWZ/

4

3 に答える 3

0

オブジェクトdialogrからプロパティを削除する必要があります。.data()

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

ライブデモ

于 2012-07-10T19:21:24.867 に答える
0

あなたがここでdialog見ることができるようにそれはuiを使ってうまく働きます。 多分それはバグです。

于 2012-07-10T19:34:09.887 に答える
0

エンジニアのおかげで、dialogr()プラグインに簡単に組み込むことができるソリューションを思いつきました。エディターでui.dialogr.jsを開いて、次を検索してください。

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

次に、それをに置き換えます

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

より複雑なダイアログの問題は解決されます。

于 2012-07-10T19:43:34.827 に答える