2010-10-26 1 views
2

Я внимательно прочитал вопрос 'Official way to ask jQuery wait for all images to load before executing something', но IE мне тяжело.

Я хочу исчезнуть на некоторых изображениях после загрузки фонового изображения, поэтому спасибо за объяснение, все хорошо работает на FF, Safari и Chrome. Однако он не работает на IE. Пробовал это на двух разных компьютерах, с IE версии 8 (8.0.7).

Может кто-нибудь посоветует мне об этом, пожалуйста? Мой сайт http://www.laforcemajeure.nl

Это мой код, который находится на нижней части моего script.js файла:

$(window).load(
    function() { 
     $("#allbirds").fadeIn(2000); 
    } 
); 
+1

Что именно происходит или не происходит? Вызывается событие или нет? (Используйте «alert()», чтобы узнать наверняка.) –

+1

У вас есть только один элемент с идентификатором 'allbirds' на вашей странице? IE имеет тенденцию быть более придирчивыми к уникальным идентификаторам, чем другие браузеры. –

+0

У меня есть только один allbirds div, конечно. –

ответ

8

Вы прикрепляя вашу window.onload функцию внутри в document.ready обработчик, вместо того, чтобы переместить его вне , onload пожаров один раз, и если вы свяжетесь после этого, вам просто не повезло, это похоже на то, что происходит в вашем случае.

Различные браузеры имеют различное поведение на сроках ready события для JQuery, как запасной вариант it'll use window.onload itself, который означает, что если это произойдет, и вы связываете с событием внутри этого обработчика, это слишком поздно ... событие имеет уже уволен.

Правило большого пальца: держите свои $(window).load() обработчиками снаружи Ваш $(document).ready() обработчики.

+0

Спасибо за объяснение, это имеет смысл. Я изменил его и переместил часть $ (window) .load() под обработчиками $ (document) .ready(). Однако у меня не было хороших результатов. IE все еще не делает этого эффекта (я удалил историю), и Safari Mac теперь быстро отображает div, прежде чем затухать его правильно. –

+0

Привет, Ник, добавив $ (window) .load() под doc.ready, я также изменил селектор. Вместо div #allbirds (который является контейнером для птиц), теперь я выбираю класс .bird, каждый раз выбирая каждую птицу. Теперь он работает безупречно! Спасибо за отличный совет, первое впечатление от моего сайта стало намного лучше. –

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