Скрытие 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-документа.