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>
Любая помощь будет принята с благодарностью!
Ответы
Ответ 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
"...