抛出TypeError,但函数仍然运行,为什么?

时间:2016-04-20 19:19:27

标签: javascript jquery typeerror uncaught-typeerror

我的控制台抛出一个未被捕获的typeError,因为它不知道jQuery是什么,但后来继续执行加载,并加载内容,然后我收到load complete消息。

我有以下代码:

jQuery(function($){
    $('#content-loader').load('someFile.html', function() {
        console.log('load complete');
    });
})();

为什么会发生这种情况,如何摆脱html文件中的错误并加载?

截至目前,someFile.html仅包含文字,没有脚本。

错误屏幕上限: enter image description here

尝试解决方案

(function($){
  ...code...
})(jQuery);

删除错误,但不加载html文件

1 个答案:

答案 0 :(得分:2)

您基本上是在呼叫jQuery(func)();。将函数传递给jquery可能会返回一个jquery对象,但不能返回一个可以用最后()调用的函数。您的错误消息:jQuery(..) is not a function因为它是jQuery调用,jQuery对象的返回,而不是函数。

尝试使用:

(function($){
  ...code...
})(jQuery);

这是:调用此参数$传递jQuery的匿名函数。 这是许多人使用的模式。

另一个快速(和奇怪)的解决方案是从包装器中删除您的上一个()$参数。