2009-10-14 2 views
5

Я пытаюсь сделать что-то вроде boxy или facebox или lightbox ... и так далее. Единственная проблема заключается в том, что я не знаю, как предварительно загружать страницу, загружаемую в окно с помощью метода load().jquery preload страница, загруженная методом load()

Он должен работать так:

  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

1

Если вы правильно поняли, вы говорите, что, поскольку на вашем сайте потребуется некоторое время, чтобы загрузить его, вы хотели бы, чтобы сообщение о дружеской загрузке отображалось немедленно и исчезало после загрузки страницы.

Трюк с этим не загружается, когда страница загружается первой. Просто загрузочное сообщение и некоторый JavaScript.

Что делает эта работа такой, что в функции $ (document) .ready() вы будете использовать AJAX для получения медленных данных. После возвращения запроса AJAX используйте JS для заполнения страницы данными и затем отключите загружаемое сообщение.

+0

хмм ... на самом деле это мой вопрос, как я могу «увидеть», когда это нормально, чтобы удалить загрузочную анимацию? что-то вроде этого этого достаточно? $ (selector) .load ('page.php', function() { $ ('. Animation'). Remove(); }); – kmunky

Смежные вопросы