jQuery UI Autocomplete,请解释这部分代码

时间:2015-12-22 21:02:25

标签: jquery-ui grails autocomplete

我尝试进行多值自动完成功能。 http://jqueryui.com/autocomplete/#multiple

我试图理解代码,但我无法弄清楚response部分。 (我是javascript的新手。我在Grails做了一个项目,我在一个月前开始学习......我是一个新手......)

  .autocomplete({
    minLength: 0,
    source: function( request, response ) {
      // delegate back to autocomplete, but extract the last term

      response( $.ui.autocomplete.filter // Please explain this part for me
          (availableTags, extractLast( request.term ) ) );

请为我解释response( $.ui.autocomplete.filter部分。另外,如果我想从我的Grails控制器使用JSON源,我该如何替换availableTags

提前致谢。

1 个答案:

答案 0 :(得分:2)

您发布的FWIK代码是小部件初始化的一部分。 在初始化时,您需要提及下拉列表的来源。 来源可以是以下之一:

    1) Array 
    2) String 
    3) Function( Object request, Function response( Object data ) 

回答响应部分:这是一个负责过滤小部件结果的函数。

回答JSON源部分: 如果Source是JSON,那么您需要指定将为该JSON提供服务的主机。每当用户键入小部件时,都会调用主机,请求参数名为TERM。因此,您需要确保从请求中过滤它并返回该请求的JSON。

在这里阅读更多相关信息: 使用Array作为输入查看自动完成中的函数源。 http://jqueryui.com/autocomplete/#multiple

查看源定义和API文档: http://api.jqueryui.com/autocomplete/#option-source

API文档中的事件响应与上面发布的代码中提到的响应不同。

对于ui.autocomplete.filter方法,请参阅正在导入的JS的源代码,这可能会让您更好地理解代码。但根据我的理解,在源代码中上面的代码中调用的响应函数是一个回调,在从数组中提取最后一个术语后委托回自动完成。

ui.autocomplete.filter方法将从提供的列表中过滤所需的元素,并回调相同的函数以提取更多。正如我所读到的,它确实一次拉出一个元素。 (请参阅上面视图源中的提取和拆分功能)

对不起,答案很重要,但请阅读文档和其他帖子,有关它的文章可以更好地了解代码。