Javascript img onload函数有时未定义

Javascript img onload函数有时未定义,javascript,jquery,html,Javascript,Jquery,Html,有时,在加载我的页面时,我的调用的函数为什么不使用jquery完成所有工作 photos.html:30 Uncaught ReferenceError: fader is not defined at HTMLImageElement.onload (photos.html:30) 使用JQuery将为您解决所有问题。您还必须遍历每个类,或者只需使用img[class='galleryimage'] $(“.gallery”).ready(函数(){ $(“.galleryimag

有时,在加载我的页面时,我的
调用的函数为什么不使用jquery完成所有工作

photos.html:30 Uncaught ReferenceError: fader is not defined
    at HTMLImageElement.onload (photos.html:30)

使用JQuery将为您解决所有问题。您还必须遍历每个类,或者只需使用
img[class='galleryimage']

$(“.gallery”).ready(函数(){
$(“.galleryimage”)。每个(函数(){
美元(这个).fadeIn(“慢”);
});
});
.galleryimage{
显示:无;
}


这不再抛出错误,但图像有时仍会无法显示。这是一个糟糕的用法,因为它需要4次回调,而您可以使用一次回调和4次循环。我的猜测是,因为您的脚本是在图像之后定义的,如果图像加载速度足够快,则函数没有定义。能否尝试将脚本标记移动到标记前面,看看是否可以修复它?如果是这样,那么要么离开它,要么考虑使用像Dojt.OnLoad方法来为您澄清RyEMOS,<代码> OnLoad 总是被调用,但是,在处理过程中它会被取消,因为在块上运行后,由于您创建了
fader
函数,因此没有定义
fader
。我遇到了相同的问题,因为有时图像加载速度比脚本处理速度快。我使用setTimeout()函数解决了这个问题,并在执行代码之前等待1秒,等待脚本完全加载。这是我使用的一种变通方法,可能不是最好的解决方案,但它很有效。@Deadsven这是对同步的错误使用,您应该使用本机函数,如
onload
或JQuery lib:
.ready
.load
@Luicy,正如我所说的,这是一种可行的变通方法,我不允许该项目使用JQuery,出于某些原因,onload仍然无法始终显示图像,这是确保加载图像的唯一安全方法(如果您知道javascript中更好的方法来保证图像显示,请让我知道)。但是如果您可以使用JQuery,那么您是对的,它将以这种方式工作。谢谢!这似乎每次都起作用。值得注意的是,@Toby建议在节目开始前简单地重新安排剧本似乎也起了作用。啊,因为我了解了你的问题,没有看到任何课堂上的答案,所以没有阅读前几段评论,他应该把它作为答案发布,但哦,好吧。现在没关系了。
photos.html:30 Uncaught ReferenceError: fader is not defined
    at HTMLImageElement.onload (photos.html:30)
$(".galleryimage").on("load", function(){
    $(this).fadeIn(1000);
});