2009-03-04 3 views
5

Я использую расширение автозаполнения jquery 1.0.2 от Dylan Verheul, Dan G. Switzer, Anjesh Tuladhar, Jörn Zaefferer. Я пытаюсь выполнить свою собственную функцию обратного вызова, когда вызовы .show() и .hide() вызываются из элемента управления автозаполнением. Я не нашел способа, чтобы он действительно распознал мою функцию обратного вызова. Если кто-то знаком с этим контролем и может помочь, я был бы очень благодарен.Как вы прикрепляете пользовательскую функцию обратного вызова к расширению автозаполнения jquery?

ответ

8

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

Идея состоит в том, чтобы добавить ваши обратные вызовы к параметру 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 */ } 
}); 

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

+0

спасибо, ybo, давая ему попробовать! –

+1

он работает! ты восхитителен! На самом деле у меня есть шоу и скрытые функции обратного вызова, которые я хочу назвать заранее определенными, поэтому я просто делаю showCallback: myShow, hideCallback: myHide, и он просто работает, еще раз спасибо! –

+0

Отлично;) Вы можете попробовать представить идею/код авторам, они могут быть заинтересованы. – ybo

 Смежные вопросы

  • Нет связанных вопросов^_^