如名称所述,我有一个带有链接的菜单,并且我有一个要在单击菜单时显示/隐藏的部分列表。我在这里想要的是动态的,如果我添加更多的菜单和部分,我不必更改执行它的代码,或者添加新的标签或名称。我尝试自己做一些事情,但我可能遗漏了一些东西。任何帮助都会得到帮助
我在这个 jfiddle 上有一个简单的例子:https ://jsfiddle.net/s07ysx6w/6/
HTML:
<div id="header">
<div id="menuBlock">
<ul id="menu">
<li><a href="#novosti" name="sekcija1">Novosti</a></li>
<li><a href="#programMladi" name="sekcija2">Program Mladi</a></li>
<li><a href="#programOdrasli" name="sekcija3">Program Odrasli</a></li>
<li><a href="#programUpisi" name="sekcija4">Program Upisi</a></li>
<li><a href="#galerija" name="sekcija5">Galerija</a></li>
<li><a href="#kontakt" name="sekcija6">Kontakt</a></li>
</ul>
</div>
</div>
<body>
<div id="main">
<div id="novosti" name="sekcija1" class="sekcija">
aaaa
</div>
<div id="programMladi" name="sekcija2" class="sekcija">
aaaa
</div>
<div id="programOdrasli" name="sekcija3" class="sekcija">
aaaa
</div>
<div id="programUpisi" name="sekcija4" class="sekcija">
aaa
</div>
<div id="galerija" name="sekcija5" class="sekcija">
aaaa
</div>
<div id="kontakt" name="sekcija6" class="sekcija">
aaa
</div>
</div>
</body>
Javascript:
$(document).ready(function() {
$("#menu").click(function(e) {
var selected = this.attr('href');
$('#main' + selected).show('slow').siblings().hide('slow');
});
});
编辑:复制/粘贴让我粗心,所以现在只有唯一的 id。还用一个工作的(解决方案)替换了小提琴。
更新:如果有人在他/她的页面上使用slicknav作为插件,要访问菜单中的元素,您需要找到 slicknav 究竟是如何将其注入您的页面的。例如,在我的情况下,因为我将它添加到我的#menuBlock
div 标签。为了找到#novosti
我必须深入挖掘的元素,因为 slicknav 会自行创建标签以便按照它的方式工作。
在那种情况下,我的 javascript 看起来像这样。
$(document).ready(function(){
$("#menuBlock div ul li a").click(function (e){
e.preventDefault();
var selected = $(this).attr('href');
$( selected ).fadeIn('slow').siblings().hide();
});
});