Wiem, że nie jest doskonały, ale można zdefiniować własny obiekt defaults
zawierający wartości domyślne. Potem, jeśli trzeba zastąpić lub dodać do tych wartości domyślnych, można użyć $.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... */
}));
Należy również pamiętać, że w przypadku zdarzeń, można wiązać z nimi poza opcjami obiektów przy użyciu on
(lub jego rodzeństwo delegate
, bind
i live
). Można stosować tę procedurę obsługi zdarzenia do wielu oknach, stosując tę samą klasę do wszystkich dialogów, na przykład:
$("div.my-dialog-class").on("dialogopen", function (event, ui) {
$(".ui-dialog-titlebar").removeClass("ui-corner-all");
$(".ui-dialog").removeClass("ui-corner-all");
});
Wystarczy pamiętać, że ta funkcja obsługi zdarzenia nie będzie wystrzelić nowych oknach. Można pozwolić bańki zdarzeniu DOM do body
i dołączyć obsługi zdarzeń tam (jest to droga pójdę):
$(document.body).on("dialogopen", "div.my-dialog-class", function (event, ui) {
$(".ui-dialog-titlebar").removeClass("ui-corner-all");
$(".ui-dialog").removeClass("ui-corner-all");
});
Dzięki tej metodzie delegacji zdarzeń, starasz się swoją funkcję open
wszystkim dialogi, które kiedykolwiek będą dołączone do document.body
.
Co masz na myśli przez "ustaw jako domyślny"? To byłoby edytowanie CSS. Nie widzę potrzeby stosowania JavaScript za każdym razem, gdy otwierane jest okno dialogowe, gdy można łatwo edytować kod CSS w celu usunięcia zaokrąglonych narożników. – j08691
Może chcesz zobaczyć to, aby uzyskać lepszą odpowiedź: http://stackoverflow.com/questions/2287045/override-jqueryui-dialog-default-options – phazei