24

たとえば、モーダルダイアログを作成できるようにしたい

close: function() {
    $(this).remove();
}

ダイアログの作成時にそれらを指定する必要はありませんが、何らかの方法でそれらのパラメーターを1か所でオーバーライドします。

これは可能ですか?

4

3 に答える 3

63

私もデフォルトのオプションをオーバーライドする必要があり、jQuery UI 1.8 を理解するのに時間がかかりました。

$.extend($.ui.dialog.prototype.options, {
    modal: true,
    resizable: false,
    draggable: false
});

上記のコードを使用すると、ダイアログ オプションの上に何でもドロップできます。上記の方法は、ほとんどの UI コンポーネントで機能します (既存の関数のプロトタイプを作成したり、関数に追加したりすることもできます)。

于 2010-03-05T18:40:27.317 に答える
3

次に、jQuery ダイアログ関数を呼び出す抽象化を作成する必要があります。

基本的に、jQuery ダイアログを使用するすべての場所でオプション リテラルを作成する代わりに、必要なオプションを作成する関数を作成し、そこから jQuery ダイアログ関数を呼び出します。

次に、コードのすべての領域で、コードをカプセル化した関数を呼び出します。

このプロセスはカプセル化と呼ばれ、ほとんどの (すべてではないにしても) ソフトウェア開発言語に適用されます。主な利点の 1 つは、コードの保守が容易になることです。

于 2010-02-18T08:06:54.970 に答える
3

jQuery UI のダイアログおよびその他のウィジェットは、デフォルト値でハッシュを定義します。これらは、jQuery UI がロードされた後にオーバーライドできます。

デフォルトが設定されている行を JavaScript で検索します。

$.extend($.ui.dialog, {
version: "1.7.2",
defaults: {
    ...

例として、JavaScript で次のように autoOpen をオフにすることができます。

$.ui.dialog.defaults.autoOpen = false;

または、オプションのハッシュをマージできます。

$.extend($.ui.dialog.defaults, {
  autoOpen: false,
  title: 'Default title'
})
于 2010-02-18T08:25:52.880 に答える