Подтвердить что ты не робот

JQuery Accordion - открыть специальный раздел для pageload

У меня есть довольно простая реализация jQuery Accordion на странице (с использованием 1.3.2, jQuery UI Core 1.72 и jQuery UI Accordion 1.7.2), и я хочу открыть второй раздел при загрузке страницы. я пробовал множество методов, но ничего не работает...

ГОЛОВКА SCRIPT:

<script type="text/javascript"> $(function() {
    $("#accordion").accordion({
        event: "mouseover"
    });

});

АКТОРДОН ТЕЛА:

<div id="accordion">
<h3><a href="#">Headline 001</a></h3>
<div>
<ul>
     <li><a href="#1">Link 001</a></li>
     <li><a href="#2">Link 002</a></li>
     </ul>
</div>
<h3><a href="#">Headline 002</a></h3>
<div>
     <ul>
    <li><a href="#3">Link 003</a></li>
     <li><a href="#4">Link 004</a></li>
     </ul>
</div>

Любая помощь будет принята с благодарностью!

4b9b3361

Ответ 1

$("#accordion").accordion({ active: 2, event: "mouseover" });

Сделайте трюк!

ОБНОВЛЕНИЕ

Если это не сработает, попробуйте

$("#accordion").accordion({  event: "mouseover" }).activate(2);

(N.B. это обновляется, чтобы быть немного быстрее, спасибо за комментарии. Честно говоря, он должен работать с параметром "active: 2", не знаю, почему этого не произошло.)

Ответ 2

правильный способ открыть конкретную вкладку:

$("#accordion").accordion({
    collapsible  : true,
    active       : false,
    heightStyle  : "content",
    navigation   : true
}); 

Установите параметр:

//$("#accordion").accordion('option', 'active' , "INSERT YOUR TAB INDEX HERE");
$("#accordion").accordion('option', 'active' , 1);

или вы можете работать с хэшем следующим образом:

if(location.hash){

    var tabIndex = parseInt(window.location.hash.substring(1));     
    $("#accordion").accordion('option', 'active' , tabIndex);

}

Голосовать, если вы используете;)

Спасибо

Ответ 3

Выполняется ли следующее?

$(function() {
    $("#accordion").accordion({
        event: "mouseover",
        collapsible: true,
        active: 2
    });

});

Ответ 4

Try

$("#accordion").activate(index);

Ответ 5

Я решил этот вопрос немного по-другому, так как мне пришлось создать menu.php, который мы включили, я включил каждую страницу. В нашем проекте было 1 аккордеон (элемент меню с 2 подменю). Поэтому, когда посетитель находится в подменю, аккордеон открыт, и выбранная ссылка (которая подсвечивается с использованием CSS, а не jQuery) активна. Но когда посетитель находится на другой странице, аккордеон работает нормально.

Здесь javascript:

var containsParams = /teacher|student/i.test(window.location.href), //regexp with string params
accordion = $("li.accordion"); // the accordion as a global

accordion.accordion({ //accordion setup on every page
    animated : !containsParams,
    active : containsParams,
    collapsible : true,
    event : "click",
    header : "h2"
});

//I like to use "self calling methods" since many times I need a main onload event and this way it clear for every page and my main function still remains
(function () {
    if (containsParams) accordion.accordion("activate", 0);
})();

Надеюсь, вам понравится. =]

С уважением! =]

Ответ 6

Вы должны написать active: 1 вместо 2, потому что Accordion индексирует разделы от 0, а не от одного. Рабочий код будет выглядеть следующим образом:

$("#accordion").accordion({ active: 1, event: "mouseover" });

Надеюсь, это поможет немного.

Ответ 7

Как уже упоминалось, следующее будет активировано при открытии:

$("#accordion").accordion({ active: 1 });

Это active:1, так как это 2-й из аккордеонного индекса {0,1,2,...};. В других ответах есть некоторая путаница, поскольку содержимое элемента содержит символ "2"...