Загрузка Fancybox

Можно ли запустить плагин Fancybox без события document.ready()? В FF вроде успешно, а в IE нет

Чтобы объяснить: я пытаюсь запустить все функции jquery внизу моей страницы:

<script type="text/javascript">
            $(".overview_picM").fancybox({
                'titleShow': false,
                'transitionIn': 'elastic',
                'transitionOut': 'elastic',
                left: picLLeft,
                'autoScale': false,
                hideOnContentClick: true,
                overlayShow: false
            });
</script>
</body>

Без document.ready() или window.load, потому что они замедляют работу.

Я знаю, что это не является обычным при использовании jquery, но у меня есть ActiveX, Java Applet или Iframe, и все эти элементы замедляют доступность jquery с помощью document.Ready или window.load(...)

Я начал реализовывать сценарии jquery этим методом, и он успешно работает для многих моих сценариев (jquery).

Идея ? С уважением,

Себастьен

РЕДАКТИРОВАНИЕ . См. пояснение, разъясняющее потребности и решения, ниже.


person Sébastien    schedule 25.08.2010    source источник


Ответы (3)


Я думаю, что пока вы помещаете код инициализации ПОСЛЕ элемента, к которому вы хотите его применить (в вашем случае это что-то с классом «overview_picM»), это должно работать.

person IgalSt    schedule 25.08.2010

Неважно, когда вы вызываете инициализацию, если вы делаете это после загрузки элемента DOM.

person Bob    schedule 25.08.2010
comment
Я пытался, но в т. е. fancybox не имеет значения, если все элементы не загружены (iframe,...). Если я нажму на review_picM, чтобы показать fancybox, перед загрузкой iframe IE вернет некоторые ошибки: загрузка равна нулю или не является объектом (...) - person Sébastien; 25.08.2010

Во-первых, спасибо Байрону за его терпение

Чтобы объяснить и уточнить мою потребность:

На моей базовой странице я хотел бы использовать fancybox для элемента <img>, чтобы показать этот элемент самым большим перед загрузкой iframe (который также находится на базовой странице).

Этот iframe содержит java-апплет, и, похоже, требуется много секунд для загрузки / готовности (?) В DOM.

Итак, я заметил, что во время загрузки iframe я не могу использовать fancybox. Возможно, fancybox нуждается в том, чтобы DOM был готов к правильному использованию в IE. Под ФФ не надо, после многих тестов. Итак, я думаю о конфликте потоков в IE.

Первоначальный вопрос был не корректно сформулирован. Извиняюсь.

Итак, чтобы решить эту проблему, я загружаю iframe src в setTimeout внизу моей страницы:

        setTimeout('initSrcIframes()',0);

        function initSrcIframes() {
            $("iframe#iframeViewer3D").attr("src", "myUrl.aspx");        

        }
</script>
</body>
</html>

Таким образом, я могу использовать плагин fancybox как можно скорее на своей базовой странице, а не после загрузки iframe. Я думаю, что с помощью метода setTimeout я запускаю новый поток (на базовой странице) для загрузки iframe src без штрафа за многие функции javascripts.

Я надеюсь, что этот ответ прояснит мою потребность и поможет некоторым людям :)

Себастьян

person Sébastien    schedule 26.08.2010