20

jquery-uiの.dialog("close")との違いは何ですか?.dialog("destroy")

以前の開発者が使用していたスクリプトがありますが.dialog("destroy")、ダイアログが閉じられたら、いくつかのアクションを実行する必要があります。がではなく でbeforeclose呼び出されることがわかりました。そのため、メソッドを から に変更して機能させる必要があります。.dialog("close").dialog("destroy")destroyclose

.dialog("close")では、使用しないと見逃してしまうものはあります.dialog("destroy")か?

PS: ダイアログはカスタム ボタンを使用してそれ自体を閉じており.dialog("close")、ボタンのクリック イベントで呼び出されます。

4

3 に答える 3

8

フォーム入力にダイアログを使用している場合、ダイアログを破棄しても入力は削除されないことに注意してください。したがって、:input 疑似セレクターで検証している場合は、「破棄」した要素が検証されます。ここで .remove() が役に立ちます。

ダイアログを破棄し、その中のフォームを削除して、それ以上の検証を防ぐカスタムのクローズ イベントを追加できます。

$dialog = $("#your_dialog_id");
$dialog.dialog('option', {
    title: "title",
    close: function (event, ui) {
        $dialog.find("form").remove();
        $dialog.dialog('destroy');
    }
});
于 2014-08-12T09:29:59.217 に答える