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”)。