Javascript - 如何传递函数点击,从一个菜单到另一个菜单
Javascript - How pass function click, from one menu to another
我是JS初学者(0.1级),我的脚本有问题。
我的练习页只有1页,但是有2个菜单,我需要在点击一个菜单的时候,这个点击把.active
class传递给另一个兄弟按钮(1A到1B , ETC。)。而且我不知道该怎么做。
我的脚本运行良好一次只有一个菜单,但没有将 .active
class 应用到第二个菜单。
SEE DEMO LIVE(代码笔)
我做错了什么...?
提前致谢!
//----------------
$(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>
您目前只是将 .active
class 添加到单击的按钮,如果我们为每个按钮添加一个标识符(名称),我们就可以实现您的要求。
尝试:
$(`[name=${$(this).attr('name')}]`).addClass("active");
$(document).ready(function() {
$('#cont-menu .menu').click(function() {
$('.menu').removeClass("active");
$(`[name=${$(this).attr('name')}]`).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/3.3.1/jquery.min.js"></script>
<div id="cont-menu">
<div id="menu-1">
<div class="menu active" name="button1">Buton 1-A</div>
<div class="menu" name="button2">Buton 2-A</div>
<div class="menu" name="button3">Buton 3-A</div>
<div class="menu" name="button4">Buton 4-A</div>
<div class="menu" name="button5">Buton 5-A</div>
</div>
<div id="menu-2">
<div class="menu active" name="button1">Buton 1-B</div>
<div class="menu" name="button2">Buton 2-B</div>
<div class="menu" name="button3">Buton 3-B</div>
<div class="menu" name="button4">Buton 4-B</div>
<div class="menu" name="button5">Buton 5-B</div>
</div>
<br><br>
</div>
$(document).ready(function(){
$('#cont-menu .menu').click(function(){
$('.menu').removeClass('active');
//Get the element from each list which matches the position of the clicked element
$('#menu-1').children().eq($(this).index()).addClass('active');
$('#menu-2').children().eq($(this).index()).addClass('active');
});
});
一种解决方案是使用 jQuery 数据属性。我们在每个菜单上为此设置一个值,将其与 1-5 相关联,然后可以使用它为两个菜单按钮添加 class。
$(document).ready(function(){
$('#cont-menu .menu').click(function(){
//get the value of the data-menu-class attribute
var menuClass = $(this).data('menu-class');
//remove all previous active classes
$('.menu').removeClass("active");
//add active to each menu (1&2)
$('#menu-1 .menu'+menuClass).addClass('active');
$('#menu-2 .menu'+menuClass).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 menu1 active" data-menu-class='1'>Buton 1-A</div>
<div class="menu menu2" data-menu-class='2'>Buton 2-A</div>
<div class="menu menu3" data-menu-class='3'>Buton 3-A</div>
<div class="menu menu4" data-menu-class='4'>Buton 4-A</div>
<div class="menu menu5" data-menu-classx='5'>Buton 5-A</div>
</div>
<div id="menu-2">
<div class="menu menu1 active" data-menu-class='1'>Buton 1-B</div>
<div class="menu menu2" data-menu-class='2'>Buton 2-B</div>
<div class="menu menu3" data-menu-class='3'>Buton 3-B</div>
<div class="menu menu4" data-menu-class='4'>Buton 4-B</div>
<div class="menu menu5" data-menu-class='5'>Buton 5-B</div>
</div>
</div>
您可以使用一些文本操作来解析 ID 和按钮文本值,以便识别单击了哪个按钮,来自哪个菜单,然后计算如何在 other 中找到相同的按钮 菜单。
此演示的评论假定您从第一个菜单中选择 Buton 3
。该代码将:
从单击的按钮向上遍历 DOM 树以找到最近的包装器 (请注意,我在两个按钮包装器中添加了 class 以使就这么简单),然后获取它的 ID。
在连字符上拆分 ID,然后获取右侧值(1 或 2)
使用三元运算符得到另一个数字(即如果这是菜单 1,nxt_mnu
是 2,等等)
获取这个按钮的文字
同上(2),使用split()
得到-A
或-B
前的文字
从所有菜单上的所有按钮中删除 .active
class
将.active
class添加到点击的按钮
(a) Select 下一个菜单,(b) 找到包含与单击按钮相同文本的文本的按钮,(c) 添加活动 class 到那个姐妹按钮
演示:
$(document).ready(function(){
$('#cont-menu .menu').click(function(){
debugger;
let mnu_num = $(this).closest('.menu-wrapper').attr('id');
mnu_num = mnu_num.split('-')[1]; //menu-1
let nxt_mnu = (mnu_num == 1) ? '2' : '1'; //2
let btn_txt = $(this).text(); //Buton 3-A
btn_txt = btn_txt.split('-')[0] //eg. Buton 3
$('.menu').removeClass("active");
$(this).addClass("active");
$('#menu-' + nxt_mnu).find('.menu:contains(' +btn_txt+ ')').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" class="menu-wrapper">
<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" class="menu-wrapper">
<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>
如果按钮只是通过它们在菜单中的位置关联,我们可以获得该位置,然后 select 每个菜单中相同位置的所有元素(通过 :nth-child
selector)。为了方便起见,我们在每个菜单中添加了 class。
$(document).ready(function(){
$('#cont-menu .menu').click(function(){
var index = $(this).index() + 1;
$('.menu').removeClass("active");
$('.menu-container :nth-child('+index+')').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 class="menu-container">
<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 class="menu-container">
<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>
这里我使用带有 css 属性选择器的数据属性来获取组中的相同元素。为了获得与悬停效果相同的行为,我使用 js 来控制它而不是 css.
$(document).ready(function() {
$('#cont-menu').on('click', '.menu', function(e) {
$('.menu').removeClass('active');
$(`[data-group=${this.dataset.group}]`).addClass("active");
});
$('#cont-menu').on('mouseenter', '.menu', function(e) {
$('.menu').removeClass('hover');
$(`[data-group=${this.dataset.group}]`).addClass('hover')
});
});
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 data-group="a" class="menu active">Buton 1-A</div>
<div data-group="b" class="menu">Buton 2-A</div>
<div data-group="c" class="menu">Buton 3-A</div>
<div data-group="d" class="menu">Buton 4-A</div>
<div data-group="e" class="menu">Buton 5-A</div>
</div>
<div id="menu-2">
<div data-group="a" class="menu active">Buton 1-B</div>
<div data-group="b" class="menu">Buton 2-B</div>
<div data-group="c" class="menu">Buton 3-B</div>
<div data-group="d" class="menu">Buton 4-B</div>
<div data-group="e" 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 backwards, of course,
are active at the same time...?</span>
</div>
我是JS初学者(0.1级),我的脚本有问题。
我的练习页只有1页,但是有2个菜单,我需要在点击一个菜单的时候,这个点击把.active
class传递给另一个兄弟按钮(1A到1B , ETC。)。而且我不知道该怎么做。
我的脚本运行良好一次只有一个菜单,但没有将 .active
class 应用到第二个菜单。
SEE DEMO LIVE(代码笔)
我做错了什么...?
提前致谢!
//----------------
$(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>
您目前只是将 .active
class 添加到单击的按钮,如果我们为每个按钮添加一个标识符(名称),我们就可以实现您的要求。
尝试:
$(`[name=${$(this).attr('name')}]`).addClass("active");
$(document).ready(function() {
$('#cont-menu .menu').click(function() {
$('.menu').removeClass("active");
$(`[name=${$(this).attr('name')}]`).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/3.3.1/jquery.min.js"></script>
<div id="cont-menu">
<div id="menu-1">
<div class="menu active" name="button1">Buton 1-A</div>
<div class="menu" name="button2">Buton 2-A</div>
<div class="menu" name="button3">Buton 3-A</div>
<div class="menu" name="button4">Buton 4-A</div>
<div class="menu" name="button5">Buton 5-A</div>
</div>
<div id="menu-2">
<div class="menu active" name="button1">Buton 1-B</div>
<div class="menu" name="button2">Buton 2-B</div>
<div class="menu" name="button3">Buton 3-B</div>
<div class="menu" name="button4">Buton 4-B</div>
<div class="menu" name="button5">Buton 5-B</div>
</div>
<br><br>
</div>
$(document).ready(function(){
$('#cont-menu .menu').click(function(){
$('.menu').removeClass('active');
//Get the element from each list which matches the position of the clicked element
$('#menu-1').children().eq($(this).index()).addClass('active');
$('#menu-2').children().eq($(this).index()).addClass('active');
});
});
一种解决方案是使用 jQuery 数据属性。我们在每个菜单上为此设置一个值,将其与 1-5 相关联,然后可以使用它为两个菜单按钮添加 class。
$(document).ready(function(){
$('#cont-menu .menu').click(function(){
//get the value of the data-menu-class attribute
var menuClass = $(this).data('menu-class');
//remove all previous active classes
$('.menu').removeClass("active");
//add active to each menu (1&2)
$('#menu-1 .menu'+menuClass).addClass('active');
$('#menu-2 .menu'+menuClass).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 menu1 active" data-menu-class='1'>Buton 1-A</div>
<div class="menu menu2" data-menu-class='2'>Buton 2-A</div>
<div class="menu menu3" data-menu-class='3'>Buton 3-A</div>
<div class="menu menu4" data-menu-class='4'>Buton 4-A</div>
<div class="menu menu5" data-menu-classx='5'>Buton 5-A</div>
</div>
<div id="menu-2">
<div class="menu menu1 active" data-menu-class='1'>Buton 1-B</div>
<div class="menu menu2" data-menu-class='2'>Buton 2-B</div>
<div class="menu menu3" data-menu-class='3'>Buton 3-B</div>
<div class="menu menu4" data-menu-class='4'>Buton 4-B</div>
<div class="menu menu5" data-menu-class='5'>Buton 5-B</div>
</div>
</div>
您可以使用一些文本操作来解析 ID 和按钮文本值,以便识别单击了哪个按钮,来自哪个菜单,然后计算如何在 other 中找到相同的按钮 菜单。
此演示的评论假定您从第一个菜单中选择 Buton 3
。该代码将:
从单击的按钮向上遍历 DOM 树以找到最近的包装器 (请注意,我在两个按钮包装器中添加了 class 以使就这么简单),然后获取它的 ID。
在连字符上拆分 ID,然后获取右侧值(1 或 2)
使用三元运算符得到另一个数字(即如果这是菜单 1,
nxt_mnu
是 2,等等)获取这个按钮的文字
同上(2),使用
前的文字split()
得到-A
或-B
从所有菜单上的所有按钮中删除
.active
class将
.active
class添加到点击的按钮(a) Select 下一个菜单,(b) 找到包含与单击按钮相同文本的文本的按钮,(c) 添加活动 class 到那个姐妹按钮
演示:
$(document).ready(function(){
$('#cont-menu .menu').click(function(){
debugger;
let mnu_num = $(this).closest('.menu-wrapper').attr('id');
mnu_num = mnu_num.split('-')[1]; //menu-1
let nxt_mnu = (mnu_num == 1) ? '2' : '1'; //2
let btn_txt = $(this).text(); //Buton 3-A
btn_txt = btn_txt.split('-')[0] //eg. Buton 3
$('.menu').removeClass("active");
$(this).addClass("active");
$('#menu-' + nxt_mnu).find('.menu:contains(' +btn_txt+ ')').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" class="menu-wrapper">
<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" class="menu-wrapper">
<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>
如果按钮只是通过它们在菜单中的位置关联,我们可以获得该位置,然后 select 每个菜单中相同位置的所有元素(通过 :nth-child
selector)。为了方便起见,我们在每个菜单中添加了 class。
$(document).ready(function(){
$('#cont-menu .menu').click(function(){
var index = $(this).index() + 1;
$('.menu').removeClass("active");
$('.menu-container :nth-child('+index+')').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 class="menu-container">
<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 class="menu-container">
<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>
这里我使用带有 css 属性选择器的数据属性来获取组中的相同元素。为了获得与悬停效果相同的行为,我使用 js 来控制它而不是 css.
$(document).ready(function() {
$('#cont-menu').on('click', '.menu', function(e) {
$('.menu').removeClass('active');
$(`[data-group=${this.dataset.group}]`).addClass("active");
});
$('#cont-menu').on('mouseenter', '.menu', function(e) {
$('.menu').removeClass('hover');
$(`[data-group=${this.dataset.group}]`).addClass('hover')
});
});
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 data-group="a" class="menu active">Buton 1-A</div>
<div data-group="b" class="menu">Buton 2-A</div>
<div data-group="c" class="menu">Buton 3-A</div>
<div data-group="d" class="menu">Buton 4-A</div>
<div data-group="e" class="menu">Buton 5-A</div>
</div>
<div id="menu-2">
<div data-group="a" class="menu active">Buton 1-B</div>
<div data-group="b" class="menu">Buton 2-B</div>
<div data-group="c" class="menu">Buton 3-B</div>
<div data-group="d" class="menu">Buton 4-B</div>
<div data-group="e" 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 backwards, of course,
are active at the same time...?</span>
</div>