【发布时间】:2015-04-16 10:34:10
【问题描述】:
我有这样的<div> 结构
<!-- Parent -->
<div id="parentCategory" >
<input type="image" src="a.jpg" onClick="showNextCat('nextCategory1', 'block', 'nextCategory2', 'nextCategory3')" />
<input type="image" src="b.jpg" onClick="showNextCat('nextCategory2', 'block', 'nextCategory1', 'nextCategory3')" />
<input type="image" src="c.jpg" onClick="showNextCat('nextCategory3', 'block', 'nextCategory1', 'nextCategory2')" />
...
</div>
<!-- 1st Child -->
<div id="nextCategory1" style="display: none;">
<input type="image" src="1a.jpg" />
<input type="image" src="1b.jpg" />
</div>
<!-- 2nd Child -->
<div id="nextCategory2" style="display: none;">
<input type="image" src="2a.jpg" />
<input type="image" src="2b.jpg" />
</div>
<!-- 3rd Child -->
<div id="nextCategory3" style="display: none;">
<input type="image" src="3a.jpg" />
<input type="image" src="3b.jpg" />
</div>
我的 JS
function showNextCat(id, visibility, h1, h2) {
var item = document.getElementById(id);
document.getElementById(h1).style.display = "none";
document.getElementById(h2).style.display = "none";
if (item.style.display !== "none") {
item.style.display = "none";
}
else {
item.style.display = visibility;
}
}
我不想硬编码 showNextCat() 方法来隐藏 non-selected <div>
请即兴JS方法。
【问题讨论】:
-
可以使用jQuery提供的
toggleClass( className ) -
你也不应该想使用内联 JS,你知道的......如果你打算使用 jQuery,是时候几乎完全重写你的 JS 代码了。
-
好的,谢谢@Rakesh 和@Regent。我将使用jQuery
toggleClass...任何链接或示例? -
@ShadabMehdi 类似于this fiddle。
标签: javascript jquery html toggle show-hide