如何使Bootstrap-Switch在條件成立的時候才改變狀態
阿新 • • 發佈:2019-01-03
事情的起因源於下邊這張原型圖,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之後狀態改變,然後測試完畢,這可真是一次讓人開心的程式設計之旅啊(並不).