如何使Bootstrap-Switch在条件成立的时候才改变状态

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38025293/article/details/82193467

事情的起因源于下边这张原型图,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之后状态改变,然后测试完毕,这可真是一次让人开心的编程之旅啊(并不).

猜你喜欢

转载自blog.csdn.net/m0_38025293/article/details/82193467