Аккордеон jQuery - открыть элемент при загрузке страницы

У меня есть настоящий простой аккордеон jQuery, основанный на http://www.stemkoski.com/stupid-simple-jquery-accordion-menu/

Все работает нормально, но я бы хотел, чтобы первый элемент в списке автоматически открывался при загрузке страницы.

У меня есть все в jsfiddle по адресу http://jsfiddle.net/HJ8c7/

Кто-нибудь может помочь?


person fightstarr20    schedule 03.09.2012    source источник


Ответы (3)


Do:

$( "#accordion" ).accordion( "option", "active", 0 );

Он откроет первый элемент.

person Endy    schedule 03.09.2012
comment
С jQuery 1.9+: $('#accordion').activate('activate', elementSelector); теперь: $('#accordion').activate('option', 'active', elementSelector); - person Sergey K; 30.01.2014

вы можете просто сделать это с помощью jquery

$(document).ready(function() {
 $(".accordionButton:first").trigger("click");
});

демонстрация скрипки js в прямом эфире

Триггерный метод jquery используется для запуска события

.trigger( eventType [, extraParameters] )

Ссылка: триггер Jquery

person chhameed    schedule 03.09.2012
comment
Излишне программно запускать события, так как библиотека уже предоставляет для этого метод. - person Endy; 03.09.2012
comment
Яп я знаю. это еще один способ сделать это... есть так много способов выполнить одну задачу... у вас есть другой способ, а у меня есть разница... Не беспокойтесь - person chhameed; 03.09.2012

Вы можете сделать это довольно просто, вызвав событие click. На основе вашего кода jsfiddle:

jQuery('div.accordionButton').click(function() {
    jQuery('div.accordionContent').slideUp('normal');    
    jQuery(this).next().slideDown('normal');
});

jQuery("div.accordionContent").hide();
jQuery('div.accordionButton:eq(0)').trigger('click');

Помимо исходного вопроса, вы можете использовать jquery по-другому, чтобы вам не приходилось постоянно использовать «jQuery». Обычно объект jquery привязывается к переменной $:

jQuery(function($) {
     $('div.accordionContent:eq(0)').trigger('click');
});
person Leif    schedule 03.09.2012