当包含div的所有元素已完全加载时,是否可以将事件分配给div以触发?例如。如果div包含图像,则在图像完全加载时在div上触发事件。我正在使用jQuery。当事件已完全加载时将事件分配给div
回答
不知道你是如何动态地添加内容,但这个例子应该说明它如何工作。
它使用.append()
来模拟你的动态加载的内容,然后将追加后,它使用.find()
找到图像,到负载处理程序附加到他们。
最后,它返回length
图像的属性。然后在加载处理程序中,随着图像加载完成,长度递减。一旦达到0
,将加载所有图像,并运行if()
中的代码。
实施例:http://jsfiddle.net/ehwyF/
var len = $('#mydiv').append('<img src = "http://dummyimage.com/150x90/f00/fff.png&text=my+image" /><img src = "http://dummyimage.com/160x90/f00/fff.png&text=my+image" /><img src = "http://dummyimage.com/170x90/f00/fff.png&text=my+image" /><img src = "http://dummyimage.com/180x90/f00/fff.png&text=my+image" />')
.find('img')
.load(function() {
if(--len === 0) {
alert('all are loaded');
}
}).length;
这种方式,仅基于在#mydiv
图像中的代码运行。
如果在那里,是不是动态的,因此不应该得到事件的任何图像,你应该能够添加.not()
过滤器,以排除那些在complete
属性是true
。
将此放在.find()
之后和之前。
.not(function(){return this.complete})
很难检查它只有一个div,但我可以建议使用$(window).load()
来检查是否所有的图像已加载?
更新: 如果您使用ajax,然后使用回调查看json何时加载,然后附加$(“div#id img”)。load()以查看何时加载所有图像。唯一的问题是我注意到图像被缓存的时候,加载器不会被触发。 :(
我加载股利动态所以不能使用$(窗口).load()的内容。应该说在我原来的问题.. – amateur 2010-11-12 00:38:59
看到我的编辑很快 – 2010-11-12 00:39:38
如果它只是一个像你想等待,你可以使用Ajax加载图像,然后在Ajax回调触发事件。
抓在div所有图像的onload事件中,有通过提高1一些全局计数器如果计数器等于在div图像的量......所有图像加载完毕。 应该很简单,使用jQuery。
这只适用于图像,但其他元素没有onload事件。
为了增加暗影精灵的想法,你可以试试下面的代码:
var totalImages = $(".yourImageClass").length;
var loadedImages = 0;
$(".yourImageClass").bind("onload", function() {
loadedImages++;
if (loadedImages == totalImages) {
//all images have loaded - bind event to DIV now
$("#yourDiv").bind(eventType, function() {
//code to attach
});
}
});
- 1. 当div加载时触发事件
- 2. 事件当文件已加载
- 3. extjs 3 - 当extjs完全加载时会触发哪个事件
- 4. 当CSS背景图像完全加载时JQuery绑定事件
- 5. UIWebView完成加载事件
- 6. TabLayoutPanel完成加载事件
- 7. C#将子事件分配给新子{}
- 8. 可可 - 将onClick事件分配给NSMenu
- 9. 将自定义事件分配给Objects OnMouseEnter事件
- 10. 将卸载事件添加到div
- 11. DIV:完全呈现的指标事件
- 12. 将点击事件分配给div但不在其中锚定
- 13. FiddlerApp描述页面完全加载时的事件
- 14. 谷歌地图:火灾事件时panTo完全加载
- 15. ArcGIS for Java:图层完全加载时发生的事件
- 16. Enquire.js - 加载时不匹配的事件
- 17. 当jquery分配给innerHtml时触发了什么事件
- 18. 分析WPF加载事件
- 19. 已完成事件的AsyncCallback
- 20. 图像载入事件触发图像完全加载之前?
- 21. 如何在web视图加载html(完全加载)时获取事件?
- 22. 如何在单击时将两个单独的事件分配给div标记
- 23. 分配给事件时的隐式委托分配?
- 24. JQuery的事件上完全
- 25. Outlook IMAP已完成电子邮件和附件下载事件
- 26. 要调用Javascript函数的事件当innerHTML已完成100%时
- 27. iframe的Javascript事件完成加载
- 28. 事件完成后加载jquery脚本
- 29. Kendo UI加载完成事件
- 30. 加载完成事件后的jQuery
这是我所遇到的最好的方法+1 – Blowsie 2011-04-07 11:30:34