我有很多h3元素,当它们在它们所在的div中被单击时我会切换,但是打开当前单击的h3并关闭其他h3的最佳方法是什么? 到目前为止,这是我的jQuery:
$('h3[id^="dd_featprod"]').click(function(){
var id = $(this).attr('id');
var theProd = id.split("+")[1];
var thelist = ".dd_fp" + theProd;
$(thelist).toggle(500);
});
HTML具有这种结构:
<div>
<ul>
<li><h3 id="dd_featprod+RW7" class="toggle_closed"><a href="javascript:;">Group</a></h3></li>
</ul>
<ol class="dd_fpRW7">
<li><a href="http://www.abc.com/pdf/specification.pdf" target="_blank">Product One</a></li>
<li><a href="http://www.abc.com/product.asp?page=geo" target="_blank">Product Two</a></li><ul>
<li><h3 id="dd_featprod+RW8" class="toggle_closed"><a href="javascript:;">Item one</a></h3></li>
</ul>
<ol class="dd_fpRW8">
<li>Sub item one</li>
<li>Sub item two</li>
</ol>
答案 0 :(得分:1)
你可以试试这个:
$('h3[id^="dd_featprod"]').click(function(){
var id = $(this).attr('id');
var theProd = id.split("+")[1];
var thelist = ".dd_fp" + theProd;
$('ol').not(thelist).hide(500);
$(thelist).toggle(500);
});
单击元素时,初始将关闭该元素(因为已打开)和其他所有元素。
下次单击元素时,将打开该元素并关闭其余元素。
DEMO :jsFiddle