我在下面有这个开关:
<input id="upperLightSwitch" type="checkbox" checked data-size="mini">
通过这个,$(document).ready
中的switchChange(on change)事件在通过点击它来改变开关状态时触发。
$('#upperLightSwitch').on('switchChange.bootstrapSwitch', function (event, state) {
sendStateToArduino("upperLight");
updateLightState("upperLight",state);
});
我的问题是当我从数据库中检查一个值并且它是0.我将切换开关状态设置为false并将第3个参数设置为false,表示在更改时不触发事件,但事件仍然触发因为正在执行上述事件中的两种方法。
引自Bootsrap网站:
$(&#39; #toggle-state-switch&#39;)。bootstrapSwitch(&#39; state&#39;,false,false); //将状态设置为关闭,不要触发switchChange事件
我正在使用的那个
$('#upperLightSwitch').bootstrapSwitch('state', false,false );
在事件代码之前,我调用的方法是在所有内容加载时检查数据库的值。
我错过了什么?
答案 0 :(得分:4)
最后一个参数应为true而不是false,如下所示禁用事件触发
$('#upperLightSwitch').bootstrapSwitch('state', false,true );
答案 1 :(得分:0)
你不能用“开箱即用”的javascript(方法)做到这一点,但有一个非常简单的解决方法!
这就是我做的......(效果很好!)
准备好文档
$(document).ready(function () {
//declare a flag.
$.onC = 0;
然后当您设置切换/切换...
时function yourFunction()
{
//first set the flag.
$.onC = 1;
$(th).bootstrapToggle('off');
}
现在处于更改功能...
$(".onOff").on("change", function (e) {
//check the flag and reset it
if ($.onC == 1)
{
$.onC = 0;
return;
}