【发布时间】:2013-06-13 17:45:21
【问题描述】:
我是 javascript 新手,我正在尝试编写一个垂直菜单。我现在让它工作,这样当您单击列表项时,它会更改 div 的内容。问题是,我知道我编写的 javascript 根本没有优化。
例如,如果我想向列表中添加另一个项目,则需要在现有脚本中添加大量代码。如果有人能给我一些关于使用某种 case/switch 或 if/else 框架的指导,这些框架可以用更少的代码做同样的事情,那就太好了。我尝试了一些不同的方法,但都没有达到我想要的效果。
这是我现在正在做的一部分。 div #2-5 在加载时是隐藏的,每个列表项都有一个单击功能,可以单独切换其他 div 的隐藏或显示。
$(document).ready(function(){
$('#feature2').hide();
$('#feature3').hide();
$('#feature4').hide();
$('#feature5').hide();
$('.feature1').click(function(){
$('#feature2').hide();
$('#feature3').hide();
$('#feature4').hide();
$('#feature5').hide();
$('#feature1').show();
});
$('.feature2').click(function(){
$('#feature1').hide();
$('#feature3').hide();
$('#feature4').hide();
$('#feature5').hide();
$('#feature2').show();
});
etc.
这是我正在尝试优化的代码的 jsFiddle:http://jsfiddle.net/7PTUu/10/
谢谢!
【问题讨论】:
-
您知道您可以一次选择多个元素吗?例如:
$("#features2, #features3, #features4, #features5").hide(); -
赋予所有元素相同的类。然后就做
$('.features').hide(); -
@RocketHazmat 然后还有
$(this).show();之类的东西
标签: javascript jquery optimization menu navigation