我正在使用自举开关。 但是如果条件在交换机中不起作用。
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的更改值。
它会返回true
和false
。
但如果我正在检查if(state1 === "true")
或if(state1 == "true")
它无效。它总是进入其他条件。
答案 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);