Javascript 未定义不是函数:自动执行函数的原因?
下面这行有什么问题吗Javascript 未定义不是函数:自动执行函数的原因?,javascript,jquery,console,Javascript,Jquery,Console,下面这行有什么问题吗 if(!$imgs.length){return$.Deferred.resolve().promise();} 我得到了一个未捕获类型错误:未定义不是一个函数控制台错误 上下文 jQuery(document).ready(function($) { (function($) { // Function to allow an event to fire after all images are loaded $.fn.imagesLoaded = fu
if(!$imgs.length){return$.Deferred.resolve().promise();}
我得到了一个未捕获类型错误:未定义不是一个函数控制台错误
上下文
jQuery(document).ready(function($) {
(function($) {
// Function to allow an event to fire after all images are loaded
$.fn.imagesLoaded = function () {
$imgs = this.find('img[src!=""]');
// if there's no images, just return an already resolved promise
if (!$imgs.length) {return $.Deferred.resolve().promise();}
// for each image, add a deferred object to the array which resolves when the image is loaded
var dfds = [];
$imgs.each(function(){
var dfd = $.Deferred();
dfds.push(dfd);
var img = new Image();
img.onload = function(){dfd.resolve();}
img.src = this.src;
});
// return a master promise object which will resolve when all the deferred objects have resolved
// IE - when all the images are loaded
return $.when.apply($,dfds);
}
})(jQuery);
});
你为什么不像这样使用$imgs.length
呢$($imgs).length
我会尝试查看这一行。查找行,不要延迟。尝试将其更改为$(this)。find()
@GuruprasadRao我尝试了你的建议,但仍然得到了错误。@skip405刚刚尝试了,但不幸的是错误仍然存在。错误是否在if($imgs.length)
行中出现???编辑:如果可能的话,你能提供html吗??