當包含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