示例JQuery自动完成代码。我可以通过两个独立的自动完成安装来调用一个函数,它允许我共享相同的功能,而不需要重写代码 。自动完成之间的JQuery共享功能
$("tags1").autocomplete(
{
source: availableTags
});
为了确保清楚。我不想重复代码。所以,当我在别处使用另一个自动完成时,我想引用自动完成中包含的代码,而不是重复代码(我只是重复自己)
示例JQuery自动完成代码。我可以通过两个独立的自动完成安装来调用一个函数,它允许我共享相同的功能,而不需要重写代码 。自动完成之间的JQuery共享功能
$("tags1").autocomplete(
{
source: availableTags
});
为了确保清楚。我不想重复代码。所以,当我在别处使用另一个自动完成时,我想引用自动完成中包含的代码,而不是重复代码(我只是重复自己)
你可以做一个手动ajax获取请求来获取数据,那么这两个autocompletes只是该变量。
var cache = {},
requestData = function(request, response) {
var term = request.term;
if(term in cache) {
response(cache[term]);
return;
}
$.getJSON("search.php", request, function(data, status, xhr) {
cache[term] = data;
response(data);
});
};
$("#birds").autocomplete({
minLength: 2,
source: requestData
});
$("#moreBirds").autocomplete({
minLength: 2,
source: requestData
});
来源:http://jqueryui.com/resources/demos/autocomplete/remote-with-cache.html
但你真的应该从服务器告诉客户端缓存请求的结果发送缓存头。然后,当第二次自动完成请求时,浏览器不必再次打开服务器。
这是关于这个问题的一个伟大的文章:https://devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers
请问您自动完成数据不依靠什么键入到文本框?自动完成数据是从服务器发送的吗? – Dve 2013-02-13 10:57:51
@DVE是的,但我有两个完全相同的,不想重复的代码。 – Jonathan 2013-02-13 11:00:53