如何创建多个切换按钮
How to Create multiple Toggle button
我想要的是创建一个多切换按钮,如果单击了一个按钮,则应关闭另一个按钮,目前我有两个切换按钮,所以我已经写了切换代码,但它很长,如果我增加切换按钮的数量,它会继续增加有什么简短的方法吗?
我的代码位于此处:
$("#cat_toggle").click(function(e){
e.preventDefault();
if($('.row42').is(":visible") ) {
$(".row42").hide();
$(".row41").slideToggle(500);
} else {
$(".row41").slideToggle(500);
}
});
$("#a_z").click(function(e){
e.preventDefault();
if($('.row41').is(":visible") ) {
$(".row41").hide();
$(".row42").slideToggle(500);
} else {
$(".row42").slideToggle(500);
}
});
也是JSfiddle链接http://jsfiddle.net/kundansingh/9pdks27c/2/
注意:我不想找任何插件
您可以为按钮使用一个类,并使id与它们的内容类似:
<div id="row41" class="button">Sample 1</div>
<div id="row42" class="button">Sample 2</div>
<div id="row43" class="button">Sample 3</div>
<div class="row41">sample demo txt one 1</div>
<div class="row42">sample demo txt two 2</div>
<div class="row43">sample demo txt three 3</div>
并为该类添加click event
:
$(".button").click(function (e) {
e.preventDefault();
$('[class^=row]').not($('.'+this.id)).hide();
$('.'+this.id).slideToggle(500);
});
这是DEMO
更改HTML结构,以获取标识符:
<div class="cat_toggle" data-target="row1">Sample 1</div>
<div class="cat_toggle" data-target="row2"> Sample 2 </div>
<div class="cat_toggle" data-target="row3">Sample 3</div>
<div class="cat_toggle" data-target="row4"> Sample 4 </div>
<div class="row" id="row1" >
sample demo txt one 1
</div>
<div class="row" id="row2">
sample demo txt two 2
</div>
<div class="row" id="row3" >
sample demo txt one 3333
</div>
<div class="row" id="row4">
sample demo txt two 4444444444444
</div>
我正在使用自定义数据属性-非常好的功能。
JQuery:
$(".cat_toggle").click(function(e){
e.preventDefault();
id=$(this).data('target');
//console.log(id);
if($('.row' +'#'+id).is(":visible") ) {
$(".row"+'#'+id).slideUp(500);
}
else {
$(".row"+'#'+id).slideToggle(500);
$(".row"+'#'+id).siblings('.row').slideUp(500);
}
});
演示:http://jsfiddle.net/9pdks27c/4/
附言CSS也被简化了,只需要类。。。
这里有一种方法,对当前的html、css和js进行了大量更改。
新排列的html:
<button class="toggle-category" data-toggle-id="s1">Sample 1</button>
<button class="toggle-category" data-toggle-id="s2">Sample 2</button>
<div class="categories toggle-group">
<div class="category hidden" id="s1">sample demo txt one 1</div>
<div class="category hidden" id="s2">sample demo two 2</div>
</div>
一些Javascript:
$(function () {
$("body").on("click",".toggle-category", function (event) {
var $trigger = $(this);
var $target = $('#'+$trigger.data("toggle-id"));
var $group = $target.closest(".toggle-group");
if($target.length){
// Hide all
$(".category:visible", $group).not($target).slideToggle("slow");
// Show selected
if(!$target.is(":visible"))
{
$target.slideToggle("slow");
}
}
})
});
示例css:
button {
background-color:#F85F5F;
display: inline-block;
}
.category {
margin: 15px 0;
}
.hidden {
display: none;
}
JsFiddle演示:http://jsfiddle.net/9pdks27c/7/
您必须使用相同名称的id
s和class
es来帮助定位元素。
$("#wrap div[id^='cat']").click(function() {
var active = $(this).attr('id');
$(this).siblings("[class^='cat']:not(." + active + ")").hide(500);
$(this).siblings("." + active).slideToggle(500);
});
#cat1,
#cat2,
#cat3 {
margin-top: 24px;
margin-left: 2%;
background-color: #F85F5F;
padding: 0 15px;
line-height: 36px;
float: left;
color: #FFF;
font-weight: 600;
cursor: pointer;
}
.cat1,
.cat2,
.cat3 {
display: none;
clear: both;
width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div id="wrap">
<div id="cat1">Sample 1</div>
<div id="cat2">Sample 2</div>
<div id="cat3">Sample 3</div>
<div class="cat1">sample demo txt one 1</div>
<div class="cat2">sample demo txt two 2</div>
<div class="cat3">sample demo txt two 3</div>
</div>
相关文章:
- 每次单击按钮即可创建新的随机句子
- 使用 C# 中的代码隐藏在单击按钮时创建 Javascript 警报
- 点击按钮即可创建网页的图片/pdf/屏幕截图
- 类似开关的按钮可以创建和删除输入框
- 如何在单选按钮中创建条件?(在jQuery Ajax中)
- 如何在单选按钮上创建条件
- 如何在 php 中单击浏览器的刷新或后退按钮时创建警报框
- 如何在具有HTML5,jQuery,PHP或JavaScript的按钮上创建编号警报
- .on jquery方法和按钮动态创建
- 在条纹按钮中创建自定义金额
- 激活单击上一个按钮后创建的按钮上的单击功能
- 在按下对话框“保存”按钮后创建对话框确认
- 在“var Select_For_Multiple_Choices”按钮下方创建文本框
- 为什么固定它按钮会创建 iframe
- 单击按钮时创建一个按钮
- 使用按钮ID创建Javascript幻灯片
- 如何在Titanium Appcelerator中通过按下另一个按钮来创建按钮
- 在asp.net mvc中单击一个按钮即可创建一个文件夹
- 使用jQuery为单选按钮窗体创建解释框
- 如何在按下按钮时创建不可编辑的类型(如标签)