jquery $(window).load vs. window.addEventListener

nbysray5  于 2023-06-29  发布在  jQuery
关注(0)|答案(2)|浏览(126)

以下两者之间的区别是什么:

$(window).load(function() {
loadSlideShow();
});

window.addEventListener('load',loadSlideShow());

函数loadSlideShow()创建幻灯片;它等待加载所有图像,然后在图像的中间将控件添加到幻灯片中(它将控件的位置基于图像的高度)。
当使用window.addEventListener时,控件有时会在图像实际加载之前添加。因此,图像高度将为0,控件将被放置在幻灯片的顶部,而不是中间。
一旦我更改为$(window).load,错误就消失了。
我不知道为什么这两者之间会有区别。

atmip9wb

atmip9wb1#

这段代码是错误的,这将产生差异:

window.addEventListener('load',loadSlideShow());

它应该是:

window.addEventListener('load',loadSlideShow);

您执行此操作的方式是立即调用loadSlideShow(),而无需等待事件。正确的方式将与您的jQuery版本相同。

mccptt67

mccptt672#

只给予函数名,不要调用它。
它的错误实现,此时您正在调用此函数

window.addEventListener('load',loadSlideShow());

正确的语法是

window.addEventListener('load',loadSlideShow());

您正在立即调用loadSlideShow函数,而没有等待事件完成。

相关问题