ページにjQueryアコーディオンのかなり基本的な実装があり(1.3.2、jQuery UI Core 1.72およびjQuery UIアコーディオン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" });
トリックを行う必要があります!
[〜#〜]更新[〜#〜]
それでもうまくいかない場合は、
$("#accordion").accordion({ event: "mouseover" }).activate(2);
(NBこれはコメントのおかげで少し速くなるように更新されています。正直に言うと、「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つのサブメニューを持つメニュー要素)がありました。したがって、ビジターがサブメニューにいるとき、アコーディオンは開いており、選択されたリンク(jQueryではなくCSSを使用して強調表示されています)がアクティブです。しかし、訪問者が別のページにいる場合、アコーディオンは正常に機能します。
これが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ではなく、1からではなく0からセクションにインデックスを付けるためです。作業コードは次のようになります。
$("#accordion").accordion({ active: 1, event: "mouseover" });
それが少し役立つことを願っています。
他の人が述べたように、以下はオープン時にアクティブになります:
$("#accordion").accordion({ active: 1 });
アコーディオンのインデックスの2番目なので、active:1
です。{0,1,2,...};
要素のコンテンツに「2
」という文字が含まれているため、他の回答には混乱があるようです...