bootstrap-switch控件如果在判断条件成立的时候触发效果

我的bootstrap-switch上面绑定了ajax请求,我想在后台返回状态成功的时候才让他左右滑动产生开启关闭效果,改如何做

 $('#mySwitch').on('switch-change', function (e, state) {
        if(state.value){
            var type = 0;
        }else{
            if(abholungSwitch == 0){
                $('#mySwitch').bootstrapSwitch('setState',!state.value, true);
                var type = 0;
            }else{
                var type = 1;
            }

        }

我在“switch-change”事件中使用$('#mySwitch').bootstrapSwitch('setState',!state.value, true);,好像只是再次触发了change事件,有什么方法可以解决吗?

阅读 6k
1 个回答

你这样会死循环的,

官方的文档,下面有句话

The method state can receive an optional third parameter skip. if true, switchChange event is not executed. The default is false.

可以通过第三个参数来决定是否要执行switchChange事件。通过绑定事件switchChange.bootstrapSwitch, 然后在该事件中调用方法,比如self.bootstrapSwtich('state', !state, true)。这样便可不会改变switch的值,当用户点击确定完成后续操作以后可通过方法bootstrapSwtich('toggleState')去改变switch的状态值。当然其中还要区分是用户点击按钮去改变的switch的值还是在代码中去改变switch的值,可通过一个标记变量来区分。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进