2010-04-30 2 views
12

Я использую JQuery, и я хочу, чтобы это произошло.jquery fadeout, load, fadein

Div исчезает, используя команду fadeOut. Затем он загружает контент из URL-адреса, используя команду load. Затем, как только содержимое загружается, оно исчезает при использовании команды fadeIn.

код у меня есть:

$("#myDiv").fadeOut().load('www.someurl.com').fadeIn() 

Однако это не работает. Это похоже на вспышки, затем загружается, а затем загружается. Я думаю, проблема заключается в том, что затухание происходит до завершения загрузки.

Что я должен делать

Благодаря

ответ

11

вы можете использовать функцию load() обратного вызова, как это:

вы можете использовать статус нагрузки() вызов, чтобы увидеть, если все было выполнено должным образом.

$("#myDiv").fadeOut().load("www.someurl.com", function(response, status, xhr) { 
    if (status == "error") { 
     // handle error 
    } 
    else 
    { 
     $(this).fadeIn(); 
    } 
}); 
+0

Является ли это потому, что «нагрузка» является асинхронной и другие действия будут продолжать работать? Ваш ответ будет ждать, чтобы вызвать «fadeIn» после того, как отчеты о загрузке сделаны, правильно? – MrChrister

+0

Да, как только нагрузка закончится, он вызовет fadeIn() – hunter

5

Используйте success обратного вызова для .load(), как это:

$("#myDiv").fadeOut().load('www.someurl.com', function() { 
    $(this).fadeIn(); 
}); 
1

вам нужно сделать замирания в функции обратного вызова нагрузки из-за асинхронной природы AJAX.

9
$("#myDiv").fadeOut(1000, function() { 
    $("#myDiv").load("www.someurl.com", {limit: 25}, function(){ 
     $("#myDiv").fadeIn(); 
    }); 
}); 

Предел определяет, как долго ждать ответа на вызов нагрузки