jQuery UI自动完成 - 外部JavaScript数据源的语法?

时间:2011-10-18 03:13:38

标签: javascript jquery-ui-autocomplete

并提前感谢阅读。我正在尝试自定义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>

=====================================

我知道更改是关于“来源;更新”行,但我不知道该怎么做。非常非常感谢你再次阅读。

1 个答案:

答案 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从远程域调用)。