我正在编写有关jQuery自动完成功能的可重用包装器,由于某种原因,我无法使select
回调工作。
给定下面的代码,绝不会调用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
不触发回调。
我一直盯着这种方式太久了...所以就我所知,这是一个愚蠢的不匹配的支撑或其他东西。
提前致谢!
我将select
和focus
事件混为一谈。因为我真的很傻。
select
确实可以在上面的代码示例中运行,但是我没有触发它,因为我只是在列表中移动焦点,而不是实际单击/选择条目。
我实际上想做的是-在列表项焦点更改时使用focus
回调-需要改为使用回调。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句