【问题标题】:load method jQuery and native JavaScript加载方法 jQuery 和原生 JavaScript
【发布时间】:2013-01-01 00:39:36
【问题描述】:

我的页面上有一个object 标签,其中包含 SVG 图形:

<object data="graphics.svg" type="image/svg+xml" id="graphics" />

我想执行一些需要完全加载 svg 文件的代码。所以我使用了 jQuery:

$('#graphics').load(function() {
    // some code
})

我使用的是原生 JavaScript:

$('#graphics')[0].addEventListener('load', function() {
    // some code
});

现在第二个 sn-p 有效,而第一个无效。我在这里想念什么? 我想embed 标签会提供另一种行为,但似乎没有区别。

【问题讨论】:

  • 如果它使用原生 JS 也能工作,为什么还要麻烦 jQuery 的东西呢?
  • 我有另一个question,然后我突然发现这个对我来说似乎很奇怪的东西。

标签: javascript jquery object load


【解决方案1】:

试试类似的东西

var element = $("<object/>");
    element.load(function () {
)};

【讨论】:

  • 嗯,确定它与我的选择器有某种联系吗?我的目标是 1)按 id 选择一个元素 2)确保它已加载 3)运行代码。但我的确切问题是我的两个 sn-ps 不一样?
【解决方案2】:

来自jQuery docs

与图像一起使用时加载事件的注意事项 开发人员尝试使用 .load() 快捷方式解决的一个常见挑战是在图像(或图像集合)完全加载时执行一个函数。应该注意几个已知的警告。它们是:

  • 它不能始终如一地工作,也不能可靠地跨浏览器

  • 如果图像 src 设置为与之前相同的 src,则它不会在 WebKit 中正确触发

  • 它没有正确地冒泡 DOM 树

  • 对于已经存在于浏览器缓存中的图像可以停止触发

与:

当一个元素和所有子元素都被完全加载后,加载事件会被发送到该元素。此事件可以发送到与 URL 关联的任何元素:图像、脚本、框架、iframe 和窗口对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 2020-06-20
    • 2019-07-09
    • 1970-01-01
    相关资源
    最近更新 更多