JQuery/Javascript:获取本地更改的布尔值

JQuery/Javascript:获取本地更改的布尔值,javascript,jquery,html,Javascript,Jquery,Html,我在布尔和示波器方面遇到了一些问题。我已经将一个全局布尔值设置为false,当一个函数的布尔值变为true时。如果布尔值为true,我希望运行另一个函数。但是,布尔值仅在使其为真的函数范围内更改,并且在全局范围内仍然为假。因此,以下需要布尔值为true的函数没有运行 我的代码的第一部分如下所示: let threePick= false; let twoPick = false; let onePick = false; let found = false; var startGame = fa

我在布尔和示波器方面遇到了一些问题。我已经将一个全局布尔值设置为false,当一个函数的布尔值变为true时。如果布尔值为true,我希望运行另一个函数。但是,布尔值仅在使其为真的函数范围内更改,并且在全局范围内仍然为假。因此,以下需要布尔值为true的函数没有运行

我的代码的第一部分如下所示:

let threePick= false;
let twoPick = false;
let onePick = false;
let found = false;
var startGame = false;
function selector() {
    $("#threebut").click(function () {
        if (found === false) {
            found = true;
            onePick = true;
            twoPick = true;
            var input = this;
            input.disabled = true;
        }
    })
    $("#onebut").click(function () {
        if (found === false) {
            found = true;
            threePick = true;
            twoPick = true;
            var input = this;
            input.disabled = true;
        }
    })
    $("#twobut").click(function () {
        if (found === false) {
            found = true;
            threePick = true;
            onePick=true;
            var input = this;
            input.disabled = true;
        };
    });
};
selector();
function enemy() {
    $("#twobut").click(function () {
        if (twoPick === true){
        var input = this;
        input.disabled = true;
       startGame = true;
    }
    });
   $("#threebut").click(function() {
       if (threePick === true){

        input.disabled = true;
        startGame = true;   
       }
   });
   $("#twobut").click(function() {
       if (twoPick === true){
        var input = this;
        input.disabled = true;
        startGame = true; 
       }
   });
}
enemy();
注意敌人();将startName布尔值更改为true 现在,在我的代码的下一部分:

function gameStart(){
    if (startGame === true){
        var button = $('<button/>', {
            text: 'Attack'
        })
        $('#atkButton').append(button);
    }
}
gameStart();
函数gameStart(){
if(startGame==true){
变量按钮=$(''{
文字:“攻击”
})
$('#atkButton')。追加(按钮);
}
}
gameStart();
我希望函数在布尔值为true但布尔值仅在本地更改时运行。我知道访问局部变量是不可能的,但有没有办法解决这个问题,或者我可以使用其他方法

另外,我为我效率低下的代码道歉,我只做了几天javascript。 感谢您的帮助

gameStart()
在定义后立即调用,并且只调用一次。此时
startGame
的值为
false


敌军()
设置事件监听器,用于单击按钮
\threebut
\twoobut
。只有单击其中一个按钮时,
startName
的值才会设置为true。如果此后调用了
gameStart()
,它将看到
startGame
为真。

您的两个函数
选择器
为HTML中的元素定义单击操作的事件处理程序。除非单击这些元素,否则不会调用这些事件处理程序和附加函数

您的
id=twobut
元素附带了三个不同的事件处理程序,当单击该元素时,这些事件处理程序都将触发

通常在jQuery中使用
$(document).ready(function(){…})在其中可以调用
选择器()
敌人()
因此,当DOM正确加载并且事件处理程序可以成功附加时,将运行此操作


也许可以从您的页面添加HTML来创建一个工作示例

我明白了,那么我应该在敌方的if语句中调用gameStart()吗?谢谢你的帮助!编辑:是的,我成功了!谢谢@SasankGanapathiraju如果你这样做了,你将在用户每次点击其中一个按钮时启动游戏。这就是你想要的吗?我这样做是为了让其他按钮被禁用,结果很好。你为什么认为这是一个局部变量?它在所有函数之外声明。