Я решил написать собственный виджет, который расширяет и переопределяет стандартный виджет автозаполнения.
Официальная документация для фабрики $ .widget упоминает наследование, но не похоже на возможность переопределить исходные параметры виджета (т.е. не просто добавить к ним).
Например, мне не удалось переопределить параметр source (по умолчанию null) с помощью этого кода:
$.widget("ui.productSearch", $.ui.autocomplete, {
bla: 15,
source: function( request, response ) {
response($.ui.autocomplete
.filter(["a", "b", "c"],request.term));
},
minLength: 2
});
Я опробовал приведенный выше код на JS Bin . Если вы просмотрите получившийся виджет, вы увидите, что bla добавлено к опциям, но оба source и minLength по-прежнему отражают значения по умолчанию, определенные в $ .ui .autocomplete. source по-прежнему равен нулю, поэтому возникает ошибка: this.source не является функцией .
Что я делаю не так? И если это ожидаемое поведение $ .widget, каков наилучший способ переопределить опцию?