我在下面有这个开关:
<input id="upperLightSwitch" type="checkbox" checked data-size="mini">
这样,当点击开关状态发生变化时,$(document).ready
中的 switchChange(更改时)事件就会正常触发。
$('#upperLightSwitch').on('switchChange.bootstrapSwitch', function (event, state) {
sendStateToArduino("upperLight");
updateLightState("upperLight",state);
});
我的问题是,当我检查数据库中的值时,它是 0。我将切换开关状态设置为 false,并将第三个参数设置为 false,这表示在更改时不触发事件,但事件仍然会触发因为上面事件中的两个方法都正在执行。
引自 Bootsrap 网站:
$('#toggle-state-switch').bootstrapSwitch('state', false, false); // Set the state as off and do not trigger switchChange event
我正在使用的
$('#upperLightSwitch').bootstrapSwitch('state', false,false );
在事件代码之前,我调用一个方法来在加载所有内容时使用数据库检查该值。
我错过了什么?
最佳答案
最后一个参数应该是 true 而不是 false,如下所示以禁用事件触发
$('#upperLightSwitch').bootstrapSwitch('state', false,true );
关于javascript - 更改状态时 Bootstrap switchChange 事件仍然触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26150085/