我有這塊代碼,旨在首先隱藏所有相關元素,但第一個。這,它確實很好。接下來,它應該基於哪個項目被選中來顯示/隱藏這些元素。但那部分不起作用。思考?jQuery顯示/隱藏兄弟姐妹
的jQuery:
$("#accordion dl:not(:first-child)").hide(); //hide all but first
$("#menu_list a").click(function(){
var selected = this.name; //get ID from <a> name
$('#'+selected).show('slow').siblings().hide('slow'); //show ID by selected name, hide the rest
});
HTML:
<div id="menus">
<ul id="menu_list">
<li><a href="" class="menuselect" name="menu1">Menu_1</a></li>
<li><a href="" class="menuselect" name="menu2">Menu_2</a></li>
<li><a href="" class="menuselect" name="menu3">Menu_3</a></li>
</ul>
<div id="accordion">
<dl id="menu1">
<dt>
<h3>Menu 1 Item 1</h3>
</dt>
<dd>
<p>Quisque scelerisque scel nisl at pellentesque. Quisque scelerisque scel nisl at pellentesque.</p>
</dd>
</dl>
<dl id="menu2">
<dt>
<h3>Menu 2 Item 1</h3>
</dt>
<dd>
<p>Quisque scelerisque scel nisl at pellentesque. Quisque scelerisque scel nisl at pellentesque.</p>
</dd>
</dl>
<dl id="menu3">
<dt>
<h3>Menu 3 Item 1</h3>
</dt>
<dd>
<p>Quisque scelerisque scel nisl at pellentesque. Quisque scelerisque scel nisl at pellentesque.</p>
</dd>
</dl>
</div>
</div>
編輯:解決 -
好吧,我知道了。由於我已將選擇附加到鏈接上,因此點擊時一直刷新頁面。所以這在技術上是有效的,但是因爲頁面被刷新,所以再次隱藏起來。
$("#accordion dl:not(:first-child)").hide();
$("#menu_list a").click(function (e) {
var selected = this.name;
$('#'+selected).show('slow').siblings().hide('slow');
e.stopPropagation();
return false;
});
您正在使用什麼版本的jQuery? – 2011-05-27 15:46:54
如果您回答了您自己的問題,請考慮將其張貼爲答案,然後您可以接受。 – rossipedia 2013-09-03 03:59:34