Bootstrap switchChange事件在更改状态时仍在激发

Bootstrap switchChange event still firing when changing state

本文关键字:状态 switchChange 事件 Bootstrap      更新时间:2023-09-26

我下面有这个开关:

<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,并将第三个参数设置为false(表示在更改时不触发事件),但在执行上述事件中的两个方法时,事件仍然会触发。

Bootsrap网站报价:

$('#toggle state switch').bootstrapSwitch('state',false,false);//将状态设置为关闭,不触发switchChange事件

我正在使用

$('#upperLightSwitch').bootstrapSwitch('state', false,false );

在编写事件代码之前,我正在调用一个方法,以便在加载所有内容时与数据库一起检查该值。

我错过了什么?

编辑:引导开关链接

最后一个参数应该是true而不是false,如下所示,以禁止事件触发

$('#upperLightSwitch').bootstrapSwitch('state', false,true );

您不能使用"开箱即用"的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;
}