使用bootstrap switch控件,怎么在改变状态时弹出确认框,点击确定后再更改switch的状态?官方提供的事件方法不能做到啊?不知还有什么办法?
使用bootstrap switch控件,怎么在改变状态时弹出确认框,点击确定后再更改switch的状态?官方提供的事件方法不能做到啊?不知还有什么办法?
// 设置开关事件
$(".update_tips").on('switch-change', function (e, data) {
// 取反
$(this).bootstrapSwitch('setState', !data.value, true);// 这里注意第三个参数,如果不设置为true,则会陷入死循环,反复调用switch-change事件
// 禁用
$(this).bootstrapSwitch('setActive', false);
// ajax请求
$.ajax({
type: "POST",
url: url,
data: {'game_id':game_id},
dataType: "json",
context: $(this),
success: function(data) {
$(this).bootstrapSwitch('setActive', true);// 解禁
if (data.success) {
$(this).bootstrapSwitch('setState', data.data.status, true);// 这里注意第三个参数,如果不设置为true,则会陷入死循环,反复调用switch-change事件
} else {
alert(data.message);
}
}
});
});
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
好吧,可以填坑了。隔了好久,早上再次看了一下官方的文档,下面有句话
可以通过第三个参数来决定是否要执行switchChange事件。通过绑定事件
switchChange.bootstrapSwitch
, 然后在该事件中调用方法,比如self.bootstrapSwtich('state', !state, true)
。这样便可不会改变switch的值,当用户点击确定完成后续操作以后可通过方法bootstrapSwtich('toggleState')
去改变switch的状态值。当然其中还要区分是用户点击按钮去改变的switch的值还是在代码中去改变switch的值,可通过一个标记变量来区分。