如何使用这两个按钮导航菜单
How can navigate the menu using the two buttons?
我有这样一个示例:
https://jsfiddle.net/hfv7xmo6/2/HTML:<div class="container-project">
<div class="menu">MENU1</div>
<div class="menu">MENU2</div>
<div class="menu">MENU3</div>
<div class="menu">MENU3</div>
<div class="menu">MENU4</div>
</div>
<div class="content-project">
<div class="c1">CONTENT FOR MENU1</div>
<div class="c1">
<button class="prev">prev</button>
<button class="next">next</button>
CONTENT FOR MENU2
</div>
<div class="c1">CONTENT FOR MENU3</div>
<div class="c1">CONTENT FOR MENczxczU3</div>
<div class="c1">CONTENT FOR MENqqU3</div>
</div>
JS:
$(document).ready(function () {
var $c1s = $('.content-project .c1');
$c1s.first().show();
$('.container-project').on('click', '.menu', function () {
var index = $(this).index();
$c1s.hide();
$c1s.eq(index).show();
});
$('.prev').click(function(){
//code to navigate to the prev menu
});
$('.next').click(function(){
//code to navigate to the next menu
});
});
我想要的是,当用户点击"下一个"按钮导航到下一个菜单时,当你点击"上一个"按钮导航到上一个菜单时。
我不知道我们应该如何考虑这个问题,我需要一些想法。
提前感谢!
试试下面的代码:
$(document).ready(function () {
var $c1s = $('.content-project .c1');
$c1s.first().addClass('active').show();
$('.container-project').on('click', '.menu', function () {
var $cur = $('.content-project .c1.active');
var index = $(this).index();
$cur.removeClass('active').hide();
$c1s.eq(index).addClass('active').show();
});
$('.prev').click(function(){
var $cur = $('.content-project .c1.active');
var index = $cur.index();
if(index > 0){ // if its not 1st
$cur.removeClass('active').hide();
$c1s.eq(index - 1).addClass('active').show();
}
});
$('.next').click(function(){
var $cur = $('.content-project .c1.active');
var index = $cur.index();
if(index < $c1s.length){ // if its not last
$cur.removeClass('active').hide();
$c1s.eq(index + 1).addClass('active').show();
}
});
});
jsfiddle
把你的索引变量(默认为0)放在元素的点击方法之外,给它分配当前菜单点击的值。然后单击上一个按钮,从当前索引中减去1并显示该元素,在下一个按钮中,将当前索引添加1并显示该元素。
在这两种方法中,首先隐藏当前索引元素。
HTML(更新):
<button class="prev">prev</button>
<button class="next">next</button>
JQuery: $('.prev').click(function(){
$c1s.eq(index).hide();
$c1s.eq(index - 1).show();
});
$('.next').click(function(){
$c1s.eq(index).hide();
$c1s.eq(index + 1).show();
});
实现您想要的最简单的方法可能是将数字/索引应用于您的菜单。例如:
<div class="content-project">
<div class="c1" id="1">CONTENT FOR MENU1</div>
<div class="c1" id="2">
<button class="prev">prev</button>
<button class="next">next</button>
CONTENT FOR MENU2
</div>
<div class="c1" id="3">CONTENT FOR MENU3</div>
<div class="c1" id="4">CONTENT FOR MENczxczU3</div>
<div class="c1" id="5">CONTENT FOR MENqqU3</div>
</div>
然后在上一个/下一个点击你可以只是寻找在这一刻显示的菜单,得到这个div的"id"。然后在上一个函数只是隐藏它,并显示有id-1的菜单,在下一个函数id+1。也许有更好的方法,但这肯定是最简单的方法。
相关文章:
- 两个按钮在初次点击后会触发相同的功能
- 解耦按钮(两个按钮同时切换),并根据数据显示相应的按钮
- 当客户端将两个按钮的javascript函数参数修改为相同时,SQL/PHP会更新多行
- 一个具有两个图像按钮的表单在只能按下一个按钮的情况下发送两个按钮值
- 如何停止两个按钮执行相同的工作?在这种情况下,它们都会滚动到顶部
- 如何将两个按钮组合为一个
- 使用一个输入作为两个按钮的值
- 在两个按钮上的单击事件上,使用 jQuery 获取未按下按钮的值
- 使用两个按钮(提交按钮和普通按钮),它们应该以不同的方式提交相同的表单
- 如何在javascript中使两个按钮显示在一起
- 如何将相同的功能应用于两个按钮
- Jquery验证插件两个按钮
- 单击一个按钮时,如何隐藏两个按钮
- 使用相同形式的两个按钮
- 带有两个按钮的输入字段
- 不能让两个按钮在 jquery 中使用相同的函数与 html
- j查询提交两个按钮
- 仅两个按钮中的一个需要输入
- 如何在同一个表单中有两个按钮来在 ajax 中执行不同的操作
- 如何在jQuery中单击两个按钮之一时执行功能