无法在javascript中使用onclick函数更改变量值

8gsdolmq  于 2023-01-04  发布在  Java
关注(0)|答案(3)|浏览(130)

我尝试在单击按钮时将布尔值从true更改为false,然后从false更改为true,然而,值在函数内部发生更改,但当我控制函数外部的值时,它给出的是我在变量声明期间设置的默认值'

var bool = 0; 
switchCameraButton.addEventListener('click', function() {
                
                camera.switch();
                if(bool == 0){
                    bool = 1;
                }else{
                    bool = 0;
                }
                console.log(bool);
            });

console.log(bool);

'
我尝试在单击按钮时更改布尔值,但值没有更改,我的意思是它在onclick函数内更改,但不在函数外更改

ttygqcqt

ttygqcqt1#

可以使用此脚本更改单击事件时变量的值

var bool_val=false;
function changeVal(){
  bool_val=!bool_val;
   console.log(bool_val);
}
<input type="button" value="change" onclick="changeVal();">
oyt4ldly

oyt4ldly2#

一个可能的解决方案是使用localStorage保存bool值,下面是一个示例

// Your boolean is whatever you have in the localStorage if the localStorage is empty the default value will be 0
let bool = localStorage.getItem('myBoolValue') | 0; 

switchCameraButton.addEventListener('click', function() {             
    camera.switch();
    
    // this is the logical not operator it transform your bool variable from 0 to 1 and vise versa
    bool = !bool;
    
    // save your bool in localStorage, by using the + am just turning true or false to 1 or 0
    localStorage.setItem('myBoolValue', +bool);
 });

console.log(bool);
wkyowqbh

wkyowqbh3#

我认为你需要确保bool变量是在onclick函数之外声明的,这样bool的值就可以在函数之外访问,并且在按钮被点击时更新。
例如:

var bool = 0;

switchCameraButton.addEventListener('click', function() {
    camera.switch();
    if(bool == 0){
        bool = 1;
    }else{
        bool = 0;
    }
});

console.log(bool);

相关问题