2009-09-08 30 views
0

我有一個網頁,使用jquery ajax從另一個靜態頁面獲取表格標記,並將其插入到我的主頁並顯示它。我要插入的表格包含圖像和圖像下載前的表格顯示。因此,當我的代碼顯示錶格時,您可以看到圖片下載時顯示的圖片,並且非常難看。這裏的代碼...AJAX問題:如何在顯示錶格之前確保圖像已加載?

$(function() 
{ 
    //AJAX LOAD, CREATE, AND INSERT PROJECTS MARKUP ONCE THE DOCUMENT IS READY 
    $('<div id="project_container" />').load('projects.htm #projects', function() 
    { 
    $(this).hide().insertAfter('#header'); 
    }); 

    //CLICK EVENT FOR PROJECT LINK 
    $('a#projects_link').click(function() 
    {  
    $('#project_container').stop(true, true).slideDown(500);  

    $.scrollTo({top:'310px', left:'0px'}, 800); 
    }); 
}); 

是否有任何使jQuery的等待,直到圖像已經加載,然後滑動下表並顯示它?

在此先感謝您的幫助!

回答

0

在jQuery中,$(window).load()通常是您在加載所有圖像後運行一段代碼的方式。只是一個功能提供它做繁重的工作:

$(window).load(
    function() { 
     // weave your magic here. 
    } 
); 
+0

我認爲這個問題是,他是從加載另一個文件中的圖像與$ .load,也許上用戶操作,因此在$(window).load事件之前圖像可能不存在於文檔中... – CMS 2009-09-08 06:45:57

0

我編寫了一個名爲waitForImages一個jQuery插件,它觸發回調時,所有的後代圖片下載。

你可以用它來等待在table所有圖像下載...

$('table').waitForImages(function() { 
    $(this).slideDown(); 
}); 
相關問題