Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript my jQuery自动完成功能的连续控制台错误_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript my jQuery自动完成功能的连续控制台错误

Javascript my jQuery自动完成功能的连续控制台错误,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,下面的代码没有运行,我不断得到uncaughttypeerror:$(…)不是函数(匿名函数)@global.js:80j@jquery.min.js:2k@jquery.min.js:2,它的目标是带有“”的行(jquery)已调用。我曾尝试在文档的中重新组织我的外部脚本,并尝试使用JS lint,可惜我继续遇到这个错误 $(document).ready(function() { $(function($, undefined) { $.widget("app.autocompl

下面的代码没有运行,我不断得到
uncaughttypeerror:$(…)不是函数(匿名函数)@global.js:80j@jquery.min.js:2k@jquery.min.js:2
,它的目标是带有“
”的行(jquery)已调用。我曾尝试在文档的
中重新组织我的外部脚本,并尝试使用JS lint,可惜我继续遇到这个错误

$(document).ready(function() {
  $(function($, undefined) {
    $.widget("app.autocomplete", $.ui.autocomplete, {
      _create: function() {
        if(this.element.is("select")) {
          var self = this;
          this.original = this.element.hide();
          this.element = $("<input/>").insertAfter(this.original);
          this.options.source = function(request, response) {
            var filter = $.ui.autocomplete.filter,
              $options = self.original.find("option"),
              result = $options.map(function() {
                return $(this).val();
              });
            response(filter(result, request.term));
          };
        }
        this._super("_create");
      },
      _destroy: function() {
        this._super("_destroy");
        this.element.remove();
        this.original.show();
      }
    });
  })(jQuery);
  $(function() {
    $("#autocomplete").autocomplete();
  });
});
$(文档).ready(函数(){
$(函数($,未定义){
$.widget(“app.autocomplete”,$.ui.autocomplete{
_创建:函数(){
if(this.element.is(“选择”)){
var self=这个;
this.original=this.element.hide();
this.element=$(“”).insertAfter(this.original);
this.options.source=函数(请求、响应){
var filter=$.ui.autocomplete.filter,
$options=self.original.find(“选项”),
结果=$options.map(函数(){
返回$(this.val();
});
响应(过滤器(结果、请求、术语));
};
}
这个。超级(“创建”);
},
_销毁:函数(){
这个;
this.element.remove();
this.original.show();
}
});
})(jQuery);
$(函数(){
$(“#自动完成”).autocomplete();
});
});

您不需要将
jQuery
变量传递给新创建的函数,因为
$
已经引用了
jQuery
函数。出现错误是因为当函数作为第一个参数传递时,函数
$
不返回函数

$(document).ready(function() {
  $.widget("app.autocomplete", $.ui.autocomplete, {
    _create: function() {
      if(this.element.is("select")) {
        var self = this;
        this.original = this.element.hide();
        this.element = $("<input/>").insertAfter(this.original);
        this.options.source = function(request, response) {
          var filter = $.ui.autocomplete.filter,
            $options = self.original.find("option"),
            result = $options.map(function() {
              return $(this).val();
            });
          response(filter(result, request.term));
        };
      }
      this._super("_create");
    },
    _destroy: function() {
      this._super("_destroy");
      this.element.remove();
      this.original.show();
    }
  });
  $(function() {
    $("#autocomplete").autocomplete();
  });
});
$(文档).ready(函数(){
$.widget(“app.autocomplete”,$.ui.autocomplete{
_创建:函数(){
if(this.element.is(“选择”)){
var self=这个;
this.original=this.element.hide();
this.element=$(“”).insertAfter(this.original);
this.options.source=函数(请求、响应){
var filter=$.ui.autocomplete.filter,
$options=self.original.find(“选项”),
结果=$options.map(函数(){
返回$(this.val();
});
响应(过滤器(结果、请求、术语));
};
}
这个。超级(“创建”);
},
_销毁:函数(){
这个;
this.element.remove();
this.original.show();
}
});
$(函数(){
$(“#自动完成”).autocomplete();
});
});

为什么要将
jQuery
作为一个参数传递给一个已经假定存在
$
变量的函数?这一点很清楚。这部分OP代码的简化版本非常容易看到,类似这样:
$(function(){})(
),但直到您指出它,我才在完整版本中注意到它。我现在从您的建议中得到了这个错误:jquery.min.js:4 uncaughttypeerror:f.getClientRects不是一个函数