【发布时间】:2019-05-02 15:55:36
【问题描述】:
我是 JS 初学者(0.1 级),我的脚本有问题。
我的练习页面只有1个页面,但是有2个菜单,我需要在点击一个菜单时,这个点击将.active类传递给另一个兄弟按钮(1A到1B等)。而且我不知道该怎么做。
我的脚本一次只有一个菜单运行良好,但没有将.active 类应用于第二个菜单。
SEE DEMO LIVE(Codepen)
我做错了什么...?
提前致谢!
//----------------
$(document).ready(function(){
$('#cont-menu .menu').click(function(){
$('.menu').removeClass("active");
$(this).addClass("active");
});
});
body{text-align:center;font-family:Arial,sans-serif}.code{background:#d9d9d9;padding:2px 5px}#cont-menu span{line-height:1.75}#cont-menu{position:relative;width:500px;margin:0 auto;top:5px}#menu-1,#menu-2{width:150px;display:inline-block;vertical-align:top;margin:0 20px}.menu{padding:10px 20px 10px 10px;margin:0 0 3px 0;color:#fff;text-align:left;background:#999;cursor:pointer}.menu:hover{background:red}
.active{background:red}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div id="cont-menu">
<div id="menu-1">
<div class="menu active">Buton 1-A</div>
<div class="menu">Buton 2-A</div>
<div class="menu">Buton 3-A</div>
<div class="menu">Buton 4-A</div>
<div class="menu">Buton 5-A</div>
</div>
<div id="menu-2">
<div class="menu active">Buton 1-B</div>
<div class="menu">Buton 2-B</div>
<div class="menu">Buton 3-B</div>
<div class="menu">Buton 4-B</div>
<div class="menu">Buton 5-B</div>
</div>
<br><br>
<span>How to change the script so that when you click on the Menu on the left pass the <span class="code">.active</span> class also on the right, so that both buttons.<br>( 1A → 1B ... 2A → 2B ... 3A → 3B )<br>and vice versa, of course, are active at the same time...?</span>
</div>
【问题讨论】:
-
我为您创建了一个可以运行的演示,并逐步记录了代码的工作原理。 如果您在运行代码时在 Chrome 中打开了 DevTools (F12),它将在
debugger;指令处停止,并允许您使用 F10 单步执行代码在 DevTools 窗口中逐行显示。 -
看看 Felix Kling 的回答 - 比我的更优雅(更简单、更短),但也要求按钮在两个菜单上的位置相同。 +1 菲利克斯。
标签: javascript jquery menu