Я использую расширение автозаполнения jquery 1.0.2 от Dylan Verheul, Dan G. Switzer, Anjesh Tuladhar, Jörn Zaefferer. Я пытаюсь выполнить свою собственную функцию обратного вызова, когда вызовы .show() и .hide() вызываются из элемента управления автозаполнением. Я не нашел способа, чтобы он действительно распознал мою функцию обратного вызова. Если кто-то знаком с этим контролем и может помочь, я был бы очень благодарен.Как вы прикрепляете пользовательскую функцию обратного вызова к расширению автозаполнения jquery?
ответ
Извините, у меня нет простого ответа на ваш вопрос, я проверил исходный код плагина и не нашел никакого механизма, позволяющего вам делать то, что вы хотите. Я думаю, вам придется обновить этот плагин самостоятельно, чтобы он работал по вашему желанию.
Идея состоит в том, чтобы добавить ваши обратные вызовы к параметру 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 */ }
});
Не тестировался на всех, это просто быстрый и грязный раствор , Надеюсь, это поможет.
спасибо, ybo, давая ему попробовать! –
он работает! ты восхитителен! На самом деле у меня есть шоу и скрытые функции обратного вызова, которые я хочу назвать заранее определенными, поэтому я просто делаю showCallback: myShow, hideCallback: myHide, и он просто работает, еще раз спасибо! –
Отлично;) Вы можете попробовать представить идею/код авторам, они могут быть заинтересованы. – ybo