【发布时间】:2020-03-14 05:01:35
【问题描述】:
我正在围绕 jQuery 自动完成编写一个可重复使用的包装器,但由于某种原因,我无法让 select 回调工作。
鉴于下面的代码,永远不会调用 select() 函数。我搞砸了什么?使用 jQuery 自动完成小部件指定 select 回调是否存在一些隐藏的限制?
注意:这只是写了一半。只是想让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 回调没有触发。
我一直盯着这种方式太久了......所以据我所知,这是一个愚蠢的不匹配的大括号之类的。
提前致谢!
【问题讨论】:
-
您认为
this在当前范围内是什么? -
在上述哪个范围内?
-
您的问题与什么有关?
this.select.bind(this)这是一个模型绑定问题还是ThingsSuggest问题? -
@DhirajBodicherla,感谢您的帮助!
-
@honktronic:很高兴它有帮助
标签: javascript jquery jquery-autocomplete