2010-11-11 61 views
3

我使用下面的頁面閃光後檢查,看看是否在容器中的所有圖像已被正確地呈現:處理組件動態加載到頁面使用jQuery

$(window).bind('load', function() { 
     $('.imagecontainer').each(function() { 
      if ((typeof this.naturalWidth != "undefined" && this.naturalWidth == 0) || this.readyState == 'uninitialized') { 
       // Image not available so handle 
      } 
     }); 
    });  

這一切工作,如果圖像請客在第一次加載期間在頁面上呈現。

但是我遇到了一種情況,圖像是由用戶動作驅動的動態加載。

有什麼辦法可以改變我的代碼來處理這個問題嗎?我知道.live()jquery函數,但不知道如何在這裏介紹它。

回答

1

實時功能正是你想要的。真的,您只需在您的示例中將bind替換爲live即可處理未來的案例。

文檔:單擊,DBLCLICK,的keydown,按鍵,KEYUP:http://api.jquery.com/live/

  • 在jQuery的1.3.x的只有以下JavaScript事件(除了自定義事件)可以用.live()綁定,mousedown,mousemove,mouseout,mouseover和mouseup。
    • 從jQuery 1.4開始,.live()方法支持自定義事件以及所有JavaScript事件。從jQuery 1.4.1開始,即使是焦點和模糊也可以在現場使用(映射到更合適的冒泡事件焦點和聚焦)。
    • 從jQuery 1.4.1開始,可以指定懸停事件(映射到mouseenter和mouseleave,然後映射到mouseover和mouseout)。

(你需要使用1.4+的.live('load')支持。)

+0

注意,您必須使用jQuery 1.4或更好,讓.live( '負荷') – 2010-11-11 19:23:46

+0

感謝你的答案,但是當我用live替換bind時,該函數在頁面加載時不會被觸發。我正在使用JQuery 1.4.2。 – amateur 2010-11-11 21:59:58