Да.
При загрузке добавить класс (например, "hideme") для всех соответствующих DIV, например:
$('div#accordion> div').addClass('hideme');
Примечание: это означает, что аккордеон прекрасно работает, когда JavaScript отключен.
Таким образом, ваша обычная таблица стилей может указывать класс «hideme» следующим образом:
.hideme { display: none; }
В то время как ваша таблица стилей печати может указывать класс hideme следующим образом:
div.hideme { display: block; }
Далее, в функции «click», которую вы добавляете в каждый H3, после скольжения DIV добавьте класс «hideme» и затем удалите атрибут «style» из каждого DIV, который был перемещен вверх.
Общий jQuery для этого выглядит следующим образом:
<script type="text/javascript">
//<![CDATA[
$(function() {
$('#accordion> div').addClass('hideme');
$('#accordion> h3').click(function() {
$(this).next('div:hidden').slideDown('fast').siblings('div:visible').slideUp('fast', function(){ $('#accordion> div:hidden').addClass('hideme').removeAttr('style'); });
});
});
//]]>
</script>
Обратите внимание на необходимость включения функции обратного вызова в функцию slideUp, чтобы изменения стиля и класса происходили после того, как DIV сдвинулся вверх, а jQuery добавил "style = display: none;"