2017-06-16 20 views
1

我正在使用自舉開關。 但是如果條件不起作用在開關。如果條件在自舉開關中不起作用

setTimeout(function(){ 
      $('#oconnect').on('switchChange.bootstrapSwitch', function (event, state) { 
        var state1 = $('#oconnect').bootstrapSwitch('state'); 
        alert(state1); 
        if(state1 === "true") 
        { 
         alert(1); 
         $('.user_spec_div').css('display','block');  
        } 
        else 
        { 
         alert(2); 
         $('.user_spec_div').css('display','none');  
        } 
      }); 
     }, 500); 

我得到了更改的state1值。 它返回truefalse

但是,如果我通過if(state1 === "true")if(state1 == "true")檢查它無法正常工作。它總是進入其他條件。

+1

它更可能是'state'是一個布爾值,所以用'如果(狀態1){...' –

+0

哦,太好了,謝謝你的快速回復。我完全忘記布爾它的工作:) – Bhavin

+0

很高興提供幫助。我將其添加爲您的答案 –

回答

2

根據documentation,state是一個布爾值。因此,您嘗試將其與字符串進行比較會導致問題。

而是改變你的if聲明如下:

if (state1) { 
    // your code here... 
} 

事實上,你可以通過給布爾state值,這是直接傳遞到事件處理程序,在toggle()方法使代碼更簡潔,像這樣:

setTimeout(function(){ 
    $('#oconnect').on('switchChange.bootstrapSwitch', function(e, state) { 
    $('.user_spec_div').toggle(state); 
    }); 
}, 500); 
+0

感謝您的快速回復。它的工作完美。 :) – Bhavin

+0

沒問題。我只是更新了答案,以便讓您更簡單地實現邏輯。 –

+0

噢。好的解決方案再次謝謝你 :) – Bhavin