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

Javascript 抛出TypeError,但函数仍在运行,为什么?,javascript,jquery,typeerror,Javascript,Jquery,Typeerror,我的控制台抛出了一个未捕获的类型错误,因为它还不知道jQuery是什么,但随后继续执行加载,并加载内容,然后我得到load complete消息 我有以下代码: jQuery(function($){ $('#content-loader').load('someFile.html', function() { console.log('load complete'); }); })(); 为什么会发生这种情况,以及如何消除错误并加载到html文件中 现在,so

我的控制台抛出了一个未捕获的类型错误,因为它还不知道
jQuery
是什么,但随后继续执行加载,并加载内容,然后我得到
load complete
消息

我有以下代码:

jQuery(function($){
    $('#content-loader').load('someFile.html', function() {
        console.log('load complete');
    });
})();
为什么会发生这种情况,以及如何消除错误并加载到html文件中

现在,
someFile.html
只包含文本,没有脚本

错误屏幕盖:

尝试解决方案
消除错误,但不加载基本上正在调用的html文件
jQuery(func)()。将函数传递给jquery可能会返回jquery对象,但不是可以使用最后的
()
调用的函数。您的错误消息正好是:
jQuery(..)不是函数,因为它是jQuery调用的返回,是jQuery对象,不是函数

尝试使用:

(function($){
  ...code...
})(jQuery);
这就是:调用这个匿名函数,该函数具有参数
$
传递给它的
jQuery
。 这是很多人使用的模式


另一个快速(而且奇怪)的解决方案是从包装器中删除最后一个
()
$
参数。将函数传递给jquery可能会返回jquery对象,但不是可以使用最后的
()
调用的函数。您的错误消息正好是:
jQuery(..)不是函数,因为它是jQuery调用的返回,是jQuery对象,不是函数

尝试使用:

(function($){
  ...code...
})(jQuery);
这就是:调用这个匿名函数,该函数具有参数
$
传递给它的
jQuery
。 这是很多人使用的模式


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

您确定这是导致错误的原因吗?你能发布错误消息吗?是的。它告诉我jQuery(..)不是一个函数,并告诉我如果你用$替换jQuery,它仍然会发生,这就是我在一开始时使用的,我想也许使用
jQuery
可以消除错误它可能来自
'someFile.html'
中的一个脚本,该脚本恰好具有相同的行号…?你确定这是导致错误的原因吗?你能发布错误消息吗?是的。它告诉我,
jQuery(..)不是一个函数,
并向我显示了行如果你用$替换jQuery,它仍然会发生?这就是我一开始就有的,我想也许使用
jQuery
可以消除错误它可能来自于
'someFile.html'
中的一个脚本,它恰好有相同的行号…?所以,错误背后的逻辑现在变得更有意义了,但是,通过进行此更改,内容不会加载。让我试试你最近的建议。不,我没有犯任何错误。因此,我将其更改为
$(function(){…})
以摆脱函数调用
()
,这似乎是正确的work@Adjit这是因为它与您现在使用的相同,但在对函数求值之后,它尝试将jquery调用的返回用作函数…@Adjit首先,函数作为参数传递给jquery()绑定到
onready
事件,然后执行从jQuery()函数返回的对象(抛出错误),然后当文档准备就绪时,运行回调函数的内容(记录“load complete”)。因此,错误背后的逻辑现在变得更有意义了,但是,通过进行此更改,内容未加载。让我试试你最近的建议。不,我没有犯任何错误。因此,我将其更改为
$(function(){…})
以摆脱函数调用
()
,这似乎是正确的work@Adjit这是因为它与您现在使用的相同,但在对函数求值之后,它尝试将jquery调用的返回用作函数…@Adjit首先,函数作为参数传递给jquery()绑定到
onready
事件,然后执行从jQuery()函数返回的对象(抛出错误),然后当文档准备就绪时,运行回调函数的内容(记录“load complete”)。