2014-12-16 3 views
0

Когда определенная ссылка щелкнул следующий код выполняется:JQuery одушевленные/нагрузка не работает должным образом в первый раз

div.animate({ opacity: 0 }, 100, function() 
{ 
    $(this).load(url, function() 
    { 
     $(this).animate({ opacity: 1 }, 500); 
    }); 
}); 

Он прекрасно работает каждый раз, за ​​исключением впервые. В разных браузерах происходит следующее:

В div содержатся загруженные данные, но остается пустой до тех пор, пока ссылка не будет нажата снова. Он не имеет атрибута стиля/непрозрачности и установки непрозрачности в 1 в инструментах dev не показывает div.

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

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

Кто-нибудь знает, почему это происходит?

EDIT

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

ответ

0

Постарайся изменения:

$(this).animate({ opacity: 1 }, 500); 

в

div.animate({ opacity: 1 }, 500); 

информация:

Я действительно не уверен, что this в контексте .load(), но вы знаете, что div правильный объект JQuery

Кроме того, если у вас есть не aleady, обернуть все это внутри:

$(function(){ 
    ... 
}); 

Так что он работает на йоте готового

+0

Bad письменной скрипке, но тем не менее: [скрипка] (http://jsfiddle.net/qgt8w9z8/1/). Похоже, что 'this' указывает на' div' в обратном вызове с успешной загрузкой. Так что проблема не в этом. – Regent

+0

@andrew: спасибо за предложение, но оно указывает на правый div (я вижу его в отладчике), и переход на «div» не влияет на – devlock

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