我正在使用 jQuery 的 ajax 函数$.get()
从页面下载数据。然后我将该数据转换为 jQuery 对象$(data)
,允许它构造一个 DOM 树。然后我使用附加这些数据append()
有没有办法让 jQuery 触发一个类似于load
告诉我数据的 iframe/图像/视频何时完成加载的事件?之前还是之后append()
?
根据 jQuery 文档,该load
事件仅在特定对象上触发:
此事件可以发送到与 URL 关联的任何元素:图像、脚本、框架、iframe 和窗口对象。
我可以遍历所有数据并将load
侦听器附加到这些对象中的每一个,然后计算有多少,并让load
处理程序计算有多少已加载(或已被缓存),直到数量达到总数。但是,我正在寻找此解决方案的替代方案。
我试图通过将load
事件附加到window
对象load()
,on()
但是这些仅在最初加载活动页面时触发一次。
这是我的代码:
$.get(url_string, function(data) {
// Create DOM elements out of the downloaded html text 'data'
// and take a subset of the DOM elements, where the id is #content
var myContents = $(data).find("#content");
// Insert DOM elements into the active page
$("#destination").append(myContents);
// Check when all images/iframes/video elements have loaded
// Does not work
$("#destination").load(function() {
alert("new stuff loaded");
});
// Does not work either
myContents.load(function() {
alert("new stuff loaded");
});
});
这个问题与
但是这些提供的解决方案都是我上面提到的解决方案,我必须计算有多少对象,然后检查何时达到总数。