load()方法被弃用?

我正在浏览jQuery API,并注意到加载方法在不推荐使用的列表上。

类别:已弃用| 活动>文件加载

我通常使用这种方法来检查图像是否完全加载。 为什么不推荐使用? 而我应该用什么呢?

请参阅错误#11733 ,其中记载了此弃用:

.load()方法是一个模糊的签名,它可以是ajax加载或附加/触发“加载”事件。 由于这是一个基于争论的dynamic决策, CCAO无法区分它们。

为了避免与方法签名有关的歧义,现在推荐使用on()来代替。 例如:

 $("selector").load(function() { // ... }); 

应该成为:

 $("selector").on("load", function() { // ... }); 

加载函数depocated在jQuery的替代它是你可以使用像

 $("iframe").on("load",function() { alert("on loaded iframe"); }); 

如果load不能按预期工作,另一种方法是:

 $(window).one("scroll", foo); 

要么

 $(window).one("scroll", function(){/*...*/}); 

具体来说,滚动事件绑定在Android中是有用的,当DOMContentLoaded不能按预期工作,而IE8和以下时onreadystatechange不能按预期工作。

参考

  • Android DOM手指事件

  • IE实现DOMContentLoaded失败时没有资产

  • IE <9 Hack文档不在框架内