布尔变量未声明?

时间:2018-07-02 20:09:40

标签: javascript css html5 boolean

用HTML5,CSS和JavaScript重写用Unity编写的程序有点棘手。一件现在让我很困扰的事情是,我创建了一个名为isGame的变量,其值为truefalse

该代码最初给它一个false的值,并且在某些页面上(例如,一个具有数字值的pageNumber变量)应该是false。不知道我输入错了什么或什么,但是没有用。

代码如下:

function setContent() {
  if (pageNumber == 1) {
    var isGame = false;
    document.getElementById("ng_audiocontainer").innerHTML = '<audio autoplay="autoplay"><source id="ng_intro" src="audio/example"></audio>';
    currentAudio = document.getElementById("ng_intro");
    document.getElementById("ng_body").innerHTML = '<img src="images/example.png" id="ng_logo">';
    document.getElementById("ng_lipsbutton").style.display = "none";
  }
}

如您所见,setContent()函数用内容填充HTML块,并自动播放音频。它基本上是一种交互式学习工具,带有向左和向右箭头。右侧递增并调用setContent(),左侧递减并调用setContent(),从而创建一种由贫民窟操纵的分页。

我唯一遇到的问题是isGame变量没有被声明为falsetrue,只是我最初声明它的顶部我的剧本这没有任何意义,因为我写的与写页码的写法相同。救命?

很抱歉,如果这是TLDR,则不确定如何总结。


编辑:

更多细节。在脚本的最上层(顺便说一下,这是内部的,因为它将基本上粘贴到网站HTML中),我将pageNumber声明为0,将isGame声明为false

var pageNumber = 0;
var isGame = false;

function setContent() {

以下当然是上面的功能。 isGame被称为,当某些事情被点击时,有些是“错误的”,有些是“正确的”,但是我只希望它们能够对isGame == true的被点击做出反应。这是代码:

function rightLetter() {
  if (isGame == true) { 
    pageNumber++;
    setContent(); 
  }    

1 个答案:

答案 0 :(得分:-1)

每次调用该函数时,都会覆盖isGame变量。试试这个:

var isGame = false; // Declare your boolean var first

function setContent() {

    if (pageNumber == 1) {

        isGame = true; // Update your var here, to true or false
        document.getElementById("ng_audiocontainer").innerHTML = '<audio autoplay="autoplay"><source id="ng_intro" src="audio/example"></audio>';
        currentAudio = document.getElementById("ng_intro");
        document.getElementById("ng_body").innerHTML = '<img src="images/example.png" id="ng_logo">';
        document.getElementById("ng_lipsbutton").style.display = "none";

    }
}