Скрытие div при загрузке страницы с помощью виджета JQuery UI Accordion

Я использую JQuery Accordion. Когда страница загружается, все элементы делятся на секунду, прежде чем будут скрыты. Я бы хотел, чтобы элементы div оставались скрытыми во время загрузки. Я думал, что делал это, устанавливая их скрытыми с помощью javascript вне проверки готовности документа следующим образом:

$('#accordion div').hide();
$('#accordion2 div').hide();

jQuery(document).ready(function($) {...

Однако это не работает, и я подозреваю, что это потому, что я использую ярлык $, еще не объявленный.

Как заставить функции hide() срабатывать во время загрузки страницы, а не ждать, пока она полностью загрузится, а затем скрывать div?

Спасибо!

2 ответа

Решение

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

Вместо этого используйте CSS, чтобы скрыть их, тогда они уже скрыты, когда они существуют:

<style type="text/css">

#accordion div, #accordion2 div { display: none; }

</style>

Эти операторы пытаются скрыть то, что еще не было загружено:

$('#accordion div').hide();
$('#accordion2 div').hide();

С jQuery вы должны написать это:

$(function(){
    $('#accordion div').hide();
    $('#accordion2 div').hide();
});

Итак, код будет выполнен после загрузки каркаса HTML-документа.

Другие вопросы по тегам