并提前感谢阅读。我正在尝试自定义jQuery UI自动完成搜索以显示可点击链接的结果,我已经成功了。我在这个论坛上成功地模仿了另一个问题的代码。
但是,我最终会有太多链接存储在页面上作为变量。我以前使用旧版本的jQuery自动完成(在它成为jQuery UI之前)并且能够将变量“updates”存储在javascript文件中。使用UI中的新版本,我不知道这样做。旧版本在这里......
http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
那里使用的javascript文件是“localdata.js”
有没有人知道如何将源从同一个HTML页面上的变量更改为外部javascript文件,该文件与jQuery UI版本中的变量具有完全相同的文本?
我也尝试过迁移指南; http://www.learningjquery.com/2010/06/autocomplete-migration-guide但我无法理解这一点。
我没有引用外部文件的工作代码在下面......
=============================================== =====
<script>
$(function() {
var updates = [
{ value: "http://www.google.com", label: "Google"},
{ value: "http://www.yahoo.com", label: "Yahoo!"},
];
$("input#autocomplete").autocomplete({
source: updates,
select: function( event, ui ) {
window.location.href = ui.item.value;
}
});
});
</script>
=====================================
我知道更改是关于“来源;更新”行,但我不知道该怎么做。非常非常感谢你再次阅读。
答案 0 :(得分:0)
实现它的一种方法是将数据以JSON格式存储在单独的文件中。以您的示例为例,您可以将更新数组转换为有效的JSON:
[{"value": "http://www.google.com", "label": "Google"},
{"value": "http://www.yahoo.com", "label": "Yahoo!"}]
(请注意键和值周围的双引号,不需要变量)然后将其保存在updates.json文件中。通过此设置,您可以将自动完成中的source
设置为updates.json:
$("input#autocomplete").autocomplete({
source: "updates.json",
select: function( event, ui ) {
window.location.href = ui.item.value;
}
});
这假设您将从同一个域提供文件(自动完成也支持通过JSONP从远程域调用)。