2009-10-14 126 views
5

我试图做一些东西像四四方方或facebox或lightbox ...等等。唯一的问题是我不知道如何预载通过load()方法加载到框中的页面。jquery预加载通过加载()方法加载的页面

它应该是这样的:

  1. 它弹出框添加
  2. 加载动画
  3. 当页面加载动画消失

,所以我需要知道什么时候该页面被加载以删除动画。

回答

3
var function_for_display_animation = function(){ 
    //display animation 
} 
var function_for_remove_animation = function(){ 
    //remove animation 
} 

function_for_display_animation(); 
$(selector).load('page.php',function_for_remove_animation); 

或:

$().ajaxSend(function(evt, request, settings){ 
    //start animation 
}); 

$().ajaxComplete(function(event,request, settings){ 
    //end animation 
}); 

$(selector).load('page.php', function(){ 
    //work 
}); 
+1

感谢您的回答,所以回调函数是关键 – kmunky 2009-10-15 14:03:41

1

如果我的理解正确,那么您的意思是说,由于您网站上的某个页面需要一段时间才能加载,因此您希望一个友好的加载消息立即显示,并在页面加载后消失。

当页面第一次加载时,这个技巧不会被下载太多。只是加载消息和一些JavaScript。

是什么使得这项工作是在$(document).ready()函数中,您将使用AJAX来获取缓慢的数据。一旦AJAX查询返回,使用JS用数据填充页面,然后关闭加载消息。

+0

嗯......其实这是我的问题,我怎么能“看”时,它可以移除加载动画? 这样的事情够了吗? $(selector).load('page.php',function(){ $('。animation')。remove(); }); – kmunky 2009-10-14 20:18:13