Sé que no es perfecto, pero podría definir su propio objeto defaults
que contiene sus valores predeterminados. Entonces, si usted necesita para anular o añadir a los valores por defecto, se puede usar $.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... */
}));
recordar también que para los eventos, puede unirse a ellos fuera de las opciones objeto utilizando on
(o sus hermanos delegate
, bind
y live
). Se puede aplicar ese controlador de eventos para varios cuadros de diálogo mediante la aplicación de la misma clase a todos sus diálogos, por ejemplo:
$("div.my-dialog-class").on("dialogopen", function (event, ui) {
$(".ui-dialog-titlebar").removeClass("ui-corner-all");
$(".ui-dialog").removeClass("ui-corner-all");
});
Hemos de tener en cuenta que este controlador de eventos no se disparará fuera para los nuevos diálogos. Usted puede dejar que la burbuja evento hasta el DOM a la body
y adjuntar el controlador de eventos allí (esta es la ruta que iría):
$(document.body).on("dialogopen", "div.my-dialog-class", function (event, ui) {
$(".ui-dialog-titlebar").removeClass("ui-corner-all");
$(".ui-dialog").removeClass("ui-corner-all");
});
Con este método de delegación de eventos, que está solicitando su función open
a todos cuadros de diálogo que alguna vez se anexarán al document.body
.
¿Qué quiere decir con 'establecer como predeterminado'? Eso sería editar el CSS. No veo la necesidad de utilizar JavaScript cada vez que se abre el cuadro de diálogo cuando puede editar fácilmente el CSS para eliminar las esquinas redondeadas. – j08691
Quizás desee ver esto para obtener una mejor respuesta: http://stackoverflow.com/questions/2287045/override-jqueryui-dialog-default-options – phazei