Как прикрепить пользовательскую функцию обратного вызова к расширению автозаполнения jquery? - PullRequest
5 голосов
/ 04 марта 2009

Я использую расширение jquery autocomplete 1.0.2 Дилана Верхеула, Дана Г. Свитцера, Анджеша Туладхара, Йорна Зафферера. Я пытаюсь выполнить свою собственную функцию обратного вызова, когда .show () и .hide () вызываются из элемента управления автозаполнения. Я не нашел способа, чтобы он действительно распознал мою функцию обратного вызова. Если кто-то знаком с этим элементом управления и может помочь, я был бы очень признателен.

1 Ответ

8 голосов
/ 04 марта 2009

Извините, у меня нет простого ответа на ваш вопрос, я проверил исходный код плагина и не нашел никакого механизма, который позволил бы вам хотеть этого. Я думаю, вам придется обновить этот плагин самостоятельно, чтобы он работал так, как вы хотите.

Идея состоит в том, чтобы добавить ваши обратные вызовы к параметру options и затем заставить плагин использовать эти обратные вызовы. Сначала вам нужно изменить код плагина. Перейдите к функции, которая создает класс, отвечающий за отображение / скрытие элемента управления автозаполнения:

$.Autocompleter.Select = function (options, input, select, config) {

Если вы прокрутите вниз, вы увидите, что эта функция возвращает объект с методами show() и hide(). Вы можете добавить следующий код:

hide: function() {
    ...
    options.showCallback && options.showCallback(); // Invoke callback function if set
},
...
show: function() {
    ...
    options.hideCallback && options.hideCallback(); // Invoke callback function if set
},

Наконец, когда вы создаете автозаполнение, вы должны добавить ваши обратные вызовы к вашим опциям:

$("#myTextBox").autocomplete("http://...",
{
    showCallback : function() { /* do what you want here */ },
    hideCallback : function() { /* do what you want here */ }
});

Не тестировался вообще, это просто быстрое и грязное решение. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...