jQuery 3.0 $(window).load(function(){});

45

今天发布了jQuery 3.0,但是由于某种原因,以下代码在我的网站上不再起作用:

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

有人能建议我如何解决这个问题或者提供一个在/everything/加载完毕后激活的替代方案吗?


2
你读过changelog了吗? - Karl-André Gagnon
@Karl-AndréGagnon 我的代码的等效.on()是什么? - Matt Cowley
7
$(window).on('load', function(){}) - Karl-André Gagnon
1个回答

113

breaking-change-load-unload-and-error-removed中阅读:

重大更改:已删除.load()、.unload() 和 .error()

这些方法是事件操作的快捷方式,但具有多个 API 限制。事件.load() 方法与 ajax .load() 方法冲突。由于 DOM 方法的定义方式,.error() 方法无法与 window.onerror 一起使用。如果需要通过这些名称附加事件,请使用.on() 方法,例如将 $("img").load(fn) 更改为 $(img).on("load", fn)。

因此,您需要进行更改:

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

到:

$(window).on("load", function (e) {})

3
我已将其更改为$(window).on('load', function (e) {}),版本号为3.1.1,但仍然无法正常工作。 - RegarBoy
4
我发现在 on 后使用单引号会导致失败,所以我把代码改成了 $(window).on("load", function (e) {}) 现在它可以工作了,我不知道为什么引号很重要。 - RegarBoy
1
现在它两个都没有触发。 - RegarBoy
1
@开发者 如果你在OnLoad上运行它,窗口已经被执行。相反,如果你将它包装到head部分,你告诉jQuery:在dom加载时运行它。由你决定。你可以使用标准的jsfiddle.net功能,因此需要删除window的加载,或者你可以自己处理将代码包装到head部分里。 - gaetanoM
2
非常感谢。;) 祝您在堆栈溢出上愉快 :)))) - RegarBoy
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接