从这个小提琴开始:
https://jsfiddle.net/okuem1fb/
<div class="make-switch switch-small">
<input type="checkbox" checked="true" data-checkbox="VALUE1" class="alert-status">
</div>
<div class="make-switch switch-small">
<input type="checkbox" checked="true" data-checkbox="VALUE2" class="alert-status pt2">
</div>
<div class="make-switch switch-small">
<input type="checkbox" checked="true" data-checkbox="VALUE3" class="alert-status">
</div>
<div class="make-switch switch-small">
<input type="checkbox" checked="true" data-checkbox="VALUE4" class="alert-status">
</div>
$('.alert-status').bootstrapSwitch('state', true);
$(".alert-status pt2").attr('data-indeterminate', 'true');
$('.alert-status').on('switchChange.bootstrapSwitch', function (event, state) {
alert($(this).data('checkbox'));
});
从不确定状态开始,按钮会根据您点击的哪一方做出反应: 点击&#39;开启&#39;然后开关转到“关闭”状态。 点击&#39;关闭&#39;然后开关转到“开”状态。
我想改变这一点,当我点击&#39; On&#39;我实际上希望它能够进入“现状”状态。对于&#39;关闭&#39; ...
反之亦然点击&#39;关闭&#39;从不确定的状态来看,使用的事件不会触发...
有关如何改变这一点的想法吗?
答案 0 :(得分:0)
我希望从那时起找到解决方案。...
对于那些处于相同情况的人,这里是解决方案。 有必要修改js文件(bootstrap-switch.js)并找到对应于:
的行。key: '_handleHandlers',
value: function _handleHandlers() {
var _this6 = this;
this.$on.on('click.bootstrapSwitch', function (event) {
event.preventDefault();
event.stopPropagation();
_this6.state(true); //--> _this6.state(false);
return _this6.$element.trigger('focus.bootstrapSwitch');
});
return this.$off.on('click.bootstrapSwitch', function (event) {
event.preventDefault();
event.stopPropagation();
_this6.state(false); //--> _this6.state(true);
return _this6.$element.trigger('focus.bootstrapSwitch');
});
}
这将修改开关,使其在您单击“开”时变为“开”,而在另一侧单击时变为“关”。您可以用相同的方式修改缩小的文件(只是必须找到要修改的特定位置)...
对于更改事件,初始化后,必须将开关状态设置为null:
$("#my-switch").bootstrapSwitch({
indeterminate: true,
state: null
});
在Github上对此进行了讨论:https://github.com/Bttstrp/bootstrap-switch/issues/426(以及相应的JSFiddle:http://jsfiddle.net/2m4b4bb2/3/)