Я пишу повторно используемую оболочку вокруг автозаполнения jQuery, и по какой-то причине я не могу получить обратный вызов select
для работы.jQuery autocomplete select function not firing
С учетом приведенного ниже кода функция select() никогда не вызывается. Что я испортил? Есть ли скрытое ограничение на то, как вы указываете обратные вызовы select
с помощью виджета автозаполнения jQuery?
ПРИМЕЧАНИЕ: это только наполовину написанное. Просто пытаюсь получить select
работающих.
// Note: 'input' is a jQuery object.
name.space.ThingSuggest = function(input) {
this.input = input;
// Set up an autocomplete widget on the given input form.
this.input.autocomplete({
source: name.space.ThingSuggest.SOURCE_URL,
delay: 500,
select: this.select.bind(this)
});
this.input.autocomplete('instance')._renderItem = name.space.ThingSuggest.renderItem;
};
name.space.ThingSuggest.SOURCE_URL = // some URL
name.space.ThingSuggest.prototype.select = function(event, ui) {
this.input.val(ui.item.label);
return false;
};
name.space.ThingSuggest.renderItem = function(ul, item) {
return $('<li>', { value: item.value })
.append(item.label + ' <span>@' + item.username + '</span>')
.appendTo(ul);
};
быть ясно,, автодополнение и _renderItem
работают так, как ожидалось. Это только обратный вызов suggest
, который не срабатывает.
Я слишком долго смотрел на это слишком долго ... так что все, что я знаю, это глупая несогласованная скобка или что-то в этом роде.
Заранее благодарен!
Как вы думаете, что «это» находится в текущем объеме? – wahwahwah
В какой из областей выше? – honktronic
В чем ваш вопрос? 'this.select.bind (this)' Это вопрос привязки модели или вопрос 'ThingsSuggest'? – wahwahwah