私はそれが完璧ではないことを知っていますが、自分のデフォルトを含む独自のdefaults
オブジェクトを定義することができます。あなたが上書きしたり、それらのデフォルトに追加する必要がある場合次に、あなたは$.extend
を使用することができます。
var dialogDefaults = {
open: function (event, ui) {
$(".ui-dialog-titlebar").removeClass("ui-corner-all");
$(".ui-dialog").removeClass("ui-corner-all");
}
};
// then later on:
$("#foo").dialog($.extend({ }, dialogDefaults, {
autoOpen: false,
width: 500,
/* etc... */
}));
またイベントのために、あなたはon
(またはその兄弟delegate
を使用してオプションオブジェクトの外にそれらに結合することができることを覚えて、 bind
,live
)。次の例のように、あなたのダイアログのすべてに同じクラスを適用することによって、複数のダイアログにそのイベントハンドラを適用することができます。
$("div.my-dialog-class").on("dialogopen", function (event, ui) {
$(".ui-dialog-titlebar").removeClass("ui-corner-all");
$(".ui-dialog").removeClass("ui-corner-all");
});
ただ、このイベントハンドラは、新しいダイアログのためにオフに解雇しないことに注意してください。あなたは(これは私が行くルートです)body
にイベントバブルアップDOMを聞かせて、そこにイベントハンドラをアタッチできます
$(document.body).on("dialogopen", "div.my-dialog-class", function (event, ui) {
$(".ui-dialog-titlebar").removeClass("ui-corner-all");
$(".ui-dialog").removeClass("ui-corner-all");
});
イベント委譲のこの方法では、あなたがすべてにあなたopen
機能を適用していますダイアログボックスはdocument.body
に追加されます。
「デフォルトに設定」とはどういう意味ですか?それはCSSの編集でしょう。ダイアログが開かれるたびにJavaScriptを使用する必要はなく、簡単にCSSを編集して角を取り除くことができます。 – j08691
http://stackoverflow.com/questions/2287045/override-jqueryui-dialog-default-options – phazei