关于web开发中的开关功能------layui和bootstrap两种开关
来源:互联网 发布:彩虹域名转发 编辑:程序博客网 时间:2024/06/05 05:03
1.两种开关都需要使用外部引入的js包,layui使用layui插件包
第一种layui式开关:
①引入的外部文件
<link href="${ctxStatic}/layui/css/layui.css" rel="stylesheet">
<script src="${ctxStatic}/layui/layui.js"></script>
此js我会上传到下载资源中,供大家使用,也可以到官方网站中下载。
资源链接:
②开关监控事件:
layui.use(['form', 'layedit'], function(){
var form = layui.form()
,layer = layui.layer
,layedit = layui.layedit;
//监听指定开关
form.on('switch(switchTest)', function(data){
layer.msg( (this.checked ? '打开' : '关闭'), {
offset: '400px'
});
if(this.checked){
$(this).val("1");
}else{
$(this).val("0");
}
//开关状态判断,是否添加或更新数据
switchStatus($(this));
});
});
这就是和我的业务相关的部分,读者可以忽略【
//开关状态判断,是否是第一次点击开关
function switchStatus(ele){
var type=ele.next().next().next().val();
var reservationSetId=ele.next().next().val();
var reservationName=ele.parents("tr").children().eq(1).text();//$("tr:eq(1)")
var presentation=ele.parents("tr").children().eq(2).text();//$("tr:eq(1)")
$.ajax({
url : "${ctx}/vehicle/wcrReservationSet/insertWrstByType",//按照类型插入
type:"post",
dataType:"json",
data : {"reservationSetId":reservationSetId,"type":type,"reservationName":reservationName,"presentation":presentation},
success : function(result) {//layer.msg('保存成功!', {icon:1,time:1500});
location.reload();
}
});
}
】
③开关html部分
<form class="layui-form" action="">
<div class="layui-form-item">
<div class="layui-input-block">
<input type="checkbox" id="wrst1" name="status" ${wrst1.status==true?"checked":""} class="switch" lay-skin="switch" lay-filter="switchTest" lay-text="ON|OFF">
<input type="hidden" id="wrst1Id" name="reservationSetId" value="${wrst1.reservationSetId}" />
<input type="hidden" id="wrst1Type" name="type" value="1" />
</div>
</div>
</form>
注意几点:第一,必须是form标签且class的值必须‘layui-form’.第二,input类型必须是checkbox,内部可以使用EL表达式与数据库保持状态统一
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第二种bootstrap式开关
①导包
<link href="${ctxStatic}/bootstrap/css/bootstrap-switch.css"
rel="stylesheet">
<script type="text/javascript"
src="${ctxStatic}/bootstrap/js/highlight.js"></script>
<script type="text/javascript"
src="${ctxStatic}/bootstrap/js/bootstrap-switch.js"></script>
<script type="text/javascript"
src="${ctxStatic}/bootstrap/js/main.js"></script>
②html元素
<div class="switch" >
<input type="checkbox" id="wrst1" name="status" data-size="mini" ${wrst1.status==true?"checked":""} onchange="switchStatus(this,1,'${wrst1.reservationSetId}');" >
</div>
③监控事件:
使用onchange方法的监控,其实我没有使用bootstrap里面的监控,感觉不好用,所以使用onchange事件监控
/*
监控开关:第一次插入数据,以后再点击只是修改status
*/
function switchStatus(ele,type,reservationSetId){
//定义变量,取出Id和type值
var reservationName=$(ele).parents("tr").children().eq(1).text();//$("tr:eq(1)")
var presentation=$(ele).parents("tr").children().eq(2).text();//$("tr:eq(1)")
var status=$(ele).prop("checked");
$.ajax({
url : "${ctx}/vehicle/wcrReservationSet/insertWrstByType",//按照类型插入
type:"post",
dataType:"json",
async:true,
data : {"reservationSetId":reservationSetId,"type":type,"reservationName":reservationName,"presentation":presentation,"status":status},
success : function(result) {
//如果第一次添加,友好提示:开启此项服务,以后只是显示开启、关闭两种状态
if(result==1){
layer.msg('开启-'+reservationName+'-服务!',{time:1500},function(index){
location.reload();
});
}else{
if(status==true){
layer.msg('启用', {time:1500},function(index){
//location.reload();
});
}else{
layer.msg('不启用', {time:1500},function(index){
//location.reload();
});
}
}
}
});
}
OK ,如果有问题,可以咨询本人或查询资料,本人QQ:2537875330
- 关于web开发中的开关功能------layui和bootstrap两种开关
- bootstrap-switch(开关插件)
- bootstrap-switch开关组件
- 开关
- 开关
- jQuery和PHP打造功能开关效果
- 开关灯问题两种解决方法
- 使用开关,分段控件 和 web视图
- 关于HTTP和HTTPS的权限开关
- Android中的ToggleButton和Switch开关控件
- bootstrap 单选/开关控件
- Bootstrap Switch(开关控件)
- 状态开关按钮ToggleButton和开关switch的功能和用法
- 状态开关按钮ToggleButton和开关switch的功能和用法
- 第13章:状态开关按钮(ToggleButton)和开关(Switch)的功能和用法
- 关于自定义开关
- Android 7.1 关于Volte新增加一些功能开关
- 状态开关按钮(ToggleButton)和开关(Switch)的功能与用法
- vue安装node-sass出现问题的解法方法
- iOS开发零碎知识点
- SVN服务器的本地搭建和使用
- python搭建web全栈
- Oracle中的SQL总结
- 关于web开发中的开关功能------layui和bootstrap两种开关
- centOs安装Git服务器-亲测可用
- Svn文件冲突解决的三种方案
- addEventListener
- 关于使用arm-linux-gnueabihf-gcc工具链编译多线程
- MongoDB导入导出以及数据库备份
- jsoncpp 备忘笔记
- android UiAutomator基本api的二次封装
- RabbitMQ消息队列