簡體   English   中英

jQuery Accordion - 在pageload上打開特定部分

[英]jQuery Accordion - open specific section on pageload

我在頁面上有一個相當基本的jQuery Accordion實現(使用1.3.2,jQuery UI Core 1.72和jQuery UI Accordion 1.7.2),我希望在頁面加載時打開第2部分。 我嘗試了很多方法,但似乎沒有任何工作......

頭文:

<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>

任何幫助將不勝感激!

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

應該做的伎倆!

UPDATE

如果這不起作用,試試吧

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

(注意這會更快一些,感謝評論。說實話,它應該與'active: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);

}

投票,如果你使用;)

謝謝

以下工作如何?

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

});

嘗試

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

我已經解決了這個問題有點不同,因為我必須創建一個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's clear for every page and my main function still remains
(function () {
    if (containsParams) accordion.accordion("activate", 0);
})();

希望你喜歡。 =]

最好的祝福! =]

您應該寫入active: 1而不是2,因為Accordion會將部分從0開始,而不是從1開始。 工作代碼將如下所示:

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

希望它會有所幫助。

正如其他人所提到的,以下內容將使其在開放時更加活躍:

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

它是active:1因為它是手風琴指數{0,1,2,...}; 其他答案似乎有些混亂,因為元素的內容包含字符“ 2 ”......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM