事情的起因源于下边这张原型图,emmmm即用户点击定时开机开关的时候,发送请求去设置定时。如果成功,那开关就改变状态,反之开关状态不改变。
然后网上参考了一下这篇文章文章链接,然后在switchChange函数中写入了如下代码:
$('#power_on').bootstrapSwitch('onSwitchChange',function (e,state) {
$(this).bootstrapSwitch('setState',!state,true);
})
然后抱着试试看的心态,运行代码之后,switch开关依然滑动的很顺畅,好像我的代码白写了一样,看了一下控制台,果不其然,报错了。。。
遇到问题,解决问题,网上搜索一番之后,找到了这篇博文文章链接,哦~ 原来没有setState这玩意儿,遂改之
$('#power_on').bootstrapSwitch('onSwitchChange',function (e,state) {
$(this).bootstrapSwitch('state',!state,true);
})
然后就是见证奇迹的时刻,哼,switch开关滑不动了,it works.接着就是要让它根据某种状态然后滑动到相反的状态了,参考第一篇文章,代码下加了一句话.
$('#power_on').bootstrapSwitch('onSwitchChange',function (e,state) {
$(this).bootstrapSwitch('state',!state,true);
//禁用开关
$(this).bootstrapSwitch('setActive', false);
})
emmmm,然后就又出错了
啊,你是魔鬼吗???接着又是一番搜索之后,找到了下边这篇文章文章链接,于是乎,测试的代码就又成了下边这个样子
$('#power_on').bootstrapSwitch('onSwitchChange',function (e,state) {
$(this).bootstrapSwitch('state',!state,true);
//2s之后改变switch状态
setTimeout(function () {
$('#power_on').bootstrapSwitch('toggleState',true);
$('#power_on').bootstrapSwitch('state',state);
},2000);
})
运行以上代码,点击switch,2s之后状态改变,然后测试完毕,这可真是一次让人开心的编程之旅啊(并不).