2017-06-16 15 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

'場合(STATE1){... '大暮維人 –

+0

は、迅速な応答をありがとうございました。私は完全にそれが働いている真偽について忘れています:) – Bhavin

+0

喜んで喜んで。私はあなたの答えとしてそれを追加しました –

答えて

2

documentationによると、stateはブール値です。したがって、問題は文字列と比較しようとしたために発生します。

この代わりに、あなたのifの文変更:あなたはtoggle()方法に、直接イベントハンドラに渡されるブールstate値を、与えることによって、コードをさらに簡潔にすることができ、実際には

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

を、このような:それは `state`がブール値である可能性が高いですので、使用

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

すばやい返信ありがとうございます。それは完璧に働いています。 :) – Bhavin

+0

問題ありません。私はちょうどロジックをもっと簡単に実装できるように答えを更新しました。 –

+0

ああ。ニースの解決策。再びありがとう :) – Bhavin

関連する問題