3

JQuery UI ダイアログを作成する場合は、次のようなものを使用します。

var settings = {autoOpen:false, draggable:false, and so on...};

var dialog = $("#container").dialog(settings);

しかし、今、上記のようにダイアログ設定を取得する方法を知りたいです。

dialog.getSettings();

デフォルトの動作で多くのダイアログを使用するアプリケーションがあるため、必要です。何かのようなもの

function doAfterSubmit(dialogSettings) {
    // some code
}

var dialogSettings = {
    user:{
        add:{
            title:"Add user",
            buttons:{
                "Add":function() {
                    var settings = $(this).getSettings(); // The answer goes here

                    // AJAX to send some content

                    doAfterSubmit(settings);
                }
            },
            otherProperties
        },
        remove:{
            title:"Remove user",
            buttons:{
                "Remove":function() {
                    var settings = $(this).getSettings(); // The answer goes here

                    // AJAX to send some content

                    doAfterSubmit(settings);
                }
            },
            otherProperties
        },
        removeAll:{
            title:"Remove all user",
            buttons:{
                "Remove all":function() {
                    var settings = $(this).getSettings(); // The answer goes here

                    // AJAX to send some content

                    doAfterSubmit(settings);
                }
            },
            otherProperties
        }
    }    
}

JQuery UI ダイアログ ソースを見た後、ダイアログ コンポーネントのすべてのプロパティを含むdefaultsというプロパティに気付きました。しかし、どうすればこのデフォルトプロパティを取得できますか?

よろしく、

4

6 に答える 6

7
dialog.dialog('option', 'name_of_option');

これにより、そのダイアログオプションが返されます。

あなたができることは、名前のリストを保持し、それらをループして設定配列を再構築することです。なぜ正確にすべてのオプションを返す必要があるのですか?

于 2009-10-16T13:47:46.573 に答える
4
// Get or set any dialog option. If no value is specified, will act as a getter.
.dialog( 'option' , optionName , [value] );
于 2009-10-16T13:45:50.217 に答える
4

あなたはただ使うことができます

var obj = $(selector).dialog("option");

「obj」には、すべてのダイアログ オプションが通常の JAVASCRIPT オブジェクトとして含まれています。

イベント(「オープン」など)内で使用できます

var obj = $(this).dialog("option");

jQuery UI 1.8.16 (最新) を使用しています。私にぴったりです。それが役に立てば幸い。

于 2012-05-11T08:52:05.120 に答える
1

試してみてくださいdialog.options。ただし、なぜそれらを見たいのか知りたいのですが(答えが変わる可能性があります)。

于 2009-10-16T13:46:14.267 に答える
1

コード例を使用すると、次のようにする必要があります...

var optionValue = dialog.dialog('option' , optionName);

optionName は「高さ」、「位置」、「サイズ変更可能」などです。

それはすべてJQuery UIのドキュメントにあります

編集:他の回答に追加したコメントを見て、必要な機能を提供するヘルパーメソッドが必要なようです(おそらくメインプラグインの一部として提供されているはずです)

すべてのオプションに対して単に .dialog('option', xxxx) を呼び出し、それらをすべて連想配列に配置するもの。ただし、この配列を自由に使用できる場合でも、ダイアログから直接オプションを引き出すのではなく、配列から単一のオプションを引き出すことに戻ると思わずにはいられません。それとも、配列を使用して 2 番目のダイアログを作成する予定ですか?

于 2009-10-16T13:53:02.323 に答える
0

Daniel が指摘したように、変数「settings」をそれぞれループして、getSettings() が作用する独自のオブジェクトを構築できます。

于 2009-10-16T14:20:40.687 に答える