在JQuery中链接自动完成
Chaining autocompletions in JQuery
我正在开发一个web应用程序,人们可以在该应用程序中提问并获得答案。为了提高可用性,我们正在尝试在客户端获得服务器支持的自动完成,这将帮助用户构建查询。
一个例子是,用户开始输入"fo",我们建议使用已知的概念"foo bar",然后在选择该选项时,我们用所选的概念查询自动完成服务,然后向用户显示"What is foo bar(什么是foo bar)"answers"Where to find foo bar。
我们在JQuery中使用了自动完成插件,但在第二次访问服务器时遇到了问题。在JQuery自动完成的select选项中,我们使用新值启动另一个搜索,但即使我们得到了结果,选项面板也不会显示。
我们曾试图在搜索中破坏和重新创建它,试图触发"输入"answers"更改"事件,试图阻止面板关闭,并试图迫使面板打开,但似乎什么都不起作用。
this.searchBox.autocomplete({
delay: 200,
minLength: 0,
response: function (event, ui) {},
search: function (event, ui) {},
select: function (select, ui) {
self.searchBox.val(ui.item.value);
self.searchBox.autocomplete("search");
},
source: function (request, response) {
u.async.get(url, {
lan: "en",
q: request.term
}).success(function (data) {
response(data.Suggestions);
self.enable(data.Validity);
}).failure(function (data) {
console.log("fetch failure", data);
});
}
});
JQuery中特别禁用了使用与当前查询相同的术语再次搜索的功能。
从源代码来看,
_searchTimeout: function( event ) {
clearTimeout( this.searching );
this.searching = this._delay(function() {
// only search if the value has changed
if ( this.term !== this._value() ) {
this.selectedItem = null;
this.search( null, event );
}
}, this.options.delay );
},
因此,我的解决方案是利用JQuery正在执行引用相等的事实,并在我的代码中使this.term
设置为new String(this._value())
。
如果Jquery开始进行词法平等,这将被打破,但如果有人除了修改Jquery的代码之外还有更好的解决方案,我会洗耳恭听。
相关文章:
- 如何使用jQuery自动打开页面上的所有链接
- 如何在不链接/jquery的情况下使用方法应用css属性数组
- 干净地链接 jQuery ajax 请求
- 在coffeescript中链接jquery方法和参数
- 如何正确链接JQuery并使用.getJSON
- 链接jQuery中的两个元素
- 滚动到活动链接 jQuery
- 如果链接少于 1 个,则计数和隐藏链接.Jquery.
- 获取链接 href 并将其应用于另一个链接 jQuery
- jQuery-检查复选框值(链接jQuery函数与If Statment)
- 在具有固定链尾调用的循环中链接jquery.when().then()
- 更改链接jquery的href
- 使word in变成一个链接jQuery
- 如何在飞行中用文本创建链接?——JQuery初学者
- 检测文本中的超链接- jQuery
- 我如何从现有的第三方控件链接jQuery事件
- 链接JQuery命令
- 如何在点击链接Jquery/JS时将动态内容添加到引导模式中
- 切换单击链接jquery时不关闭
- 如何知道点击了哪个链接[jQuery]