【问题标题】:what does calling this function twice do?两次调用这个函数有什么作用?
【发布时间】:2014-09-10 09:39:33
【问题描述】:

我在网上找到了这段代码。我不明白最后一行是做什么的。

jQuery("#ID").autocomplete("option", "delay", 100)

没有这一行代码似乎也可以工作。

我是 jquery 的新手,所以如果这看起来很愚蠢,请原谅。

jQuery(function () 
 {
      jQuery("#ID").autocomplete({
          source: function (request, response) {
           jQuery.getJSON(
               "http://gd.geobytes.com/AutoCompleteCity?callback=?&q="+request.term,
               function (data) {
                response(data);
               }
           );
          },
          minLength: 3,
          select: function (event, ui) {
           var selectedObj = ui.item;
           jQuery("#ID").val(selectedObj.value);
           return false;
          }

      });
      jQuery("#id_ccity").autocomplete("option", "delay", 100);
     });
</script>

【问题讨论】:

  • 该函数没有被声明两次,而是被调用了两次。非常重要的区别。
  • 是的,很抱歉,我会编辑。

标签: jquery json jquery-ui


【解决方案1】:

第一次调用实例化插件以用于#ID 元素。

第二个调用是将delay 元素上的delay 选项设置为100 的值。

请注意,要使第二次调用生效,必须先实例化插件。我假设这是在您的代码中的其他地方完成的,否则您将收到错误消息。

【讨论】:

  • 这取决于插件是如何被编码来接受传递给它的参数的。默认情况下,您不会获得此行为。
  • 好的,知道了。基本上我们正在设置 get 调用之间的刷新延迟.. 对吗?
  • 然后需要看一下JS。无论如何,现在我的理解是他们只是初始化了一个为对象共享的静态或全局超时。
  • 这段代码对我来说工作正常。我没有先用 JS 速记初始化它吗?我的意思是 JQuery(函数)?
【解决方案2】:

jQuery 总是需要一个或多个 DOM 元素才能使用。当我们定义时 -

jQuery("#elementId")
  • 它将搜索带有id = "elementId" 的元素。您还可以使用 classname 分配给该元素或元素的标签。喜欢-

    jQuery("输入")

所以——

jQuery("#ID").autocomplete(initializations)

对于带有id = "ID"

的元素
jQuery("#id_ccity").autocomplete(initializations)

对于带有id = "id_ccity"的元素。

【讨论】:

  • 呃.. 我已经知道并且明白了。我对两次调用该函数感到困惑。首先使用 geobyte api 作为参数,然后使用延迟。答案#1 解释得很好。
  • ohk... :) 如果你得到答案,请接受答案#1。 :)
  • 是的,显然我暂时不能这样做。
猜你喜欢
  • 1970-01-01
  • 2023-01-10
  • 2013-10-21
  • 1970-01-01
  • 2018-10-17
  • 2017-07-25
  • 2011-06-05
  • 1970-01-01
相关资源
最近更新 更多