Я знаю, что это не идеально, но вы можете определить свой собственный объект 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");
});
Просто имейте в виду, что этот обработчик событий не будет срабатывать от новых диалоговых окон. Вы могли бы позволить пузырек события вверх по DOM к body
и присоединить обработчик события там (это маршрут я бы):
$(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
.
Что вы подразумеваете под 'set as default'? Это будет редактирование CSS. Я не вижу необходимости использовать JavaScript каждый раз, когда открывается диалог, когда вы можете легко редактировать CSS, чтобы удалить закругленные углы. – j08691
Возможно, вы хотите увидеть это для лучшего ответа: http://stackoverflow.com/questions/2287045/override-jqueryui-dialog-default-options – phazei