Показать сообщение отдельно
  #1 (permalink)  
Старый 22.04.2014, 07:05
Интересующийся
Отправить личное сообщение для DmitryK1 Посмотреть профиль Найти все сообщения от DmitryK1
 
Регистрация: 20.04.2012
Сообщений: 14

Как правильно переопределить select в автокомплите?
Есть код плагина - расширение автокомплита:
$.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);} });


вызов всё рушит.

Как правильно сделать? Неужели надо свой массив заводить, обрабатывать изменения и вызывать в цикле самому все навешенные обработчики?
Ответить с цитированием