返回介绍

.load()

发布于 2017-09-11 17:04:08 字数 2301 浏览 1050 评论 0 收藏 0

所属分类:事件 > 文档加载 | 弃用 > 1.8 版本弃用的 API

.load( handler(eventObject) )返回: jQueryversion deprecated: 1.8

描述: 为 JavaScript 的 "load" 事件绑定一个处理函数。

  • 添加的版本: 1.0.load( handler(eventObject) )

    • handler(eventObject) 类型: Function() 每次事件触发时会执行的函数。
  • 添加的版本: 1.4.3.load( [eventData ], handler(eventObject) )

    • eventData 类型: PlainObject 一个对象,它包含的数据键值对映射将被传递给事件处理程序。
    • handler(eventObject) 类型: Function() 每次事件触发时会执行的函数。

这个方法是 .bind('load', handler) 的快捷方式。

当所有子元素已经被完全加载完成时,load事件被发送到这个元素。此事件适用于任何可使用 URL关联的任何元素:images, scripts, frames, iframes, window 对象。

例子,考虑了一个简单的图片页面:

<img src="book.png" alt="Book" id="book" />

事件处理器可以绑定到图像上:

$('#book').load(function() {
  // Handler for .load() called.
});

只要图像已被加载,该处理程序被调用。

在一般情况下,没有必要等待所有图像完全装入。如果代码可以更早的执行,通常最好把它在发送到.ready()方法处理。

Ajax的模块也有一个方法命名.load() 。jQuery根据传递给它的参数设置来确定使用哪个方法执行。

当使用图像上的load事件时的注意事项

开发者们在试图使用 .load() 事件来解决一个共通的挑战,那就是:当一张图片(或一组图片)被完全加载完之后,执行一个函数。以下是一些相关的注意事项:

  • 它在跨浏览器下始终是不可靠
  • 如果被设置图片的src和之前的src相同,在WebKit中,该事件不能正常触发
  • 不能正常的在DOM树上冒泡
  • 如果图片已经在浏览器的缓存中,将停止触发

注意:.live().delegate()方法不能用于检测一个iframe的load事件。load事件不能正常泡沫到父文档,并且在Firefox,IE9和Chrome浏览器中,event.target无法被设置,因为它需要事件代理。

例子:

Example: 当页面(包括所有图片)被完全加载完后,执行一个函数。

$(window).load(function () {
  // run code
});

Example: 在图片对象的 load 事件中,做如下处理:如果图片高度大于 100,就给它添加 bigImg 样式。

$('img.userIcon').load(function(){
  if($(this).height() > 100) {
    $(this).addClass('bigImg');
  }
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文