我有一段代码,旨在隐藏除第一个以外的所有相关元素。这个目标它可以实现。接下来,根据所选项目,它应该显示/隐藏这些元素。但这部分没有正常工作。你有什么想法吗?
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;
});