Есть код плагина - расширение автокомплита:
$.widget("my.idautocomplete", $.ui.autocomplete, {
options: {
id:""
},
select:function f1(event, ui) {
this.options.id=ui.id
console.log("Autocomplete sel " + $(this).attr("id"));
}
}
Более того, в процессе написания мой плагин может быть создан на странице примерно так:
$("input").idautocomplete({select:function f2(){alert(1);} });
И мне важно чтобы обе функции f1 и f2 выполнялись. Выполняться они должны вызовом из исходного автокомплита при выборе элемента из дропдауна. Однако когда я пишу так, ничто не выполняется.
Я пробовал делать так:
$.widget("my.idautocomplete", $.ui.autocomplete, {
options: {
oldselect:{},
id:""
},
_create: function () {
$.ui.autocomplete.prototype._create.call(this);
this.options.oldselect=this.options.select;
this.options.select=this.sel;
},
sel:function (event, ui) {
console.log("Autocomplete sel " + $(this).attr("id"));
}
}
подменял оригинальный селект своим, но это работает если автокомплит создаётся без обработчика селекта.
А вот такой:
$("input").idautocomplete({select:function f2(){alert(1);} });
вызов всё рушит.
Как правильно сделать? Неужели надо свой массив заводить, обрабатывать изменения и вызывать в цикле самому все навешенные обработчики?