如何使用javascript变量值来触发动作

时间:2016-08-08 09:38:30

标签: javascript

我需要使用布尔变量的值来触发一个动作,我会在几个场合使用它,然后以最好的方式做我非常重要的事情。 我已经搜索并找到了使用object.watch的方法,如下所示:

let test1 = {on: false};
teste1.watch('on', function (prop, oldval, newval) {
    if (teste1.on === true) {
        $('#bot').toggleClass('switch-bck');
    } else {
        $('#bot').toggleClass('switch');
    }
    return newval;
});
interact('#bot2')
    .on('down', function (event) {
        event.currentTarget.classList.toggle('switch');
        event.preventDefault();
        if (teste1.on) {
            teste1.on = false;
        } else {
            teste1.on = true;
        }
        document.getElementById('demo').innerHTML = teste1.on;
    })
    .on('up', function (event) {
        event.currentTarget.classList.toggle('switch');
        event.preventDefault();

        document.getElementById('demo').innerHTML = teste1.on;
    });
document.getElementById('demo').innerHTML = teste1.on;

这几乎可行。 当我改变teste1.on的状态时,前2次效果很好。但在此之后,将teste1.on的两倍更改用于

  

$( '#机器人')toggleClass( '开关-BCK');

被激活。但我看到teste1.on正确更改,因为我看到它的值

  

document.getElementById('demo')。innerHTML = teste1.on;

如果我将return newval更改为return oldval甚至将其删除,那么我想要的更改就会完美无缺,但我所用的价值

  

document.getElementById('demo')。innerHTML = teste1.on;

保持冻结或显示“未定义”。

有任何帮助吗?甚至可以在不使用.watch的情况下执行此操作?

0 个答案:

没有答案