Это один из возможных способов достижения этого.
Виджеты пользовательского интерфейса jquery вызывают событие 'create', которое запускается между выполнением методов _create () и _init ():
this._create();
this._trigger( "create" );
this._init();
Это событие вызывается из виджета базового объекта, поэтому оно доступно для всех реализующих его виджетов.
Классы для 'ui-corner-xxx' (и других) обычно создаются в 'Метод _create (), чтобы вы могли связать обработчик событий с опцией 'create' виджетов, чтобы удалить эти классы.Примерно так:
var classesToRemove = ['ui-corner-all', 'ui-corner-top',
'ui-corner-bottom', 'ui-corner-right', 'ui-corner-left',
'ui-corner-tl', 'ui-corner-tr', 'ui-corner-bl', 'ui-corner-br'];
var removeClassesCreateHandler = function(event, ui) {
var that = this;
$.each(classesToRemove, function(idx, val) {
$('.' + val, that).removeClass(val);
});
};
$("#accordion").accordion({
create: removeClassesCreateHandler
});
Вот рабочий пример для jsfiddle .
О событии create
в jQuery UI Widgets
Важно отметить, что не все виджеты jQuery ui на самом деле реализуют Фабрику виджетов (благодаря решению, описанному выше, возможно).
Итак, хотя на странице документации отображается create
опция, это не обязательно доступно.
Это относится, например, к DatePicker.Он по-прежнему опирается на довольно старый код и не реализует фабрику виджетов (пока - планируется реорганизация).