如果条件不能在bootstrap开关中工作

时间:2017-06-16 09:34:28

标签: javascript jquery twitter-bootstrap

我正在使用自举开关。 但是如果条件在交换机中不起作用。

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 个答案:

答案 0 :(得分:2)

根据documentationstate是一个布尔值。因此,问题是由于您尝试将其与字符串进行比较而引起的。

而是将您的if语句更改为:

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

事实上,通过将布尔state值(直接传递给事件处理程序)提供给toggle()方法,您可以使代码更简洁,如下所示:

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