单击所有按钮时添加事件

时间:2019-04-05 13:16:39

标签: javascript html if-statement button onclick

我正在开发一个用于缓解恐慌攻击的应用程序。我使用的是5-4-3-2-1方法,用户必须识别他所看到的5件事,他所听到的4件事,依此类推。每次他识别出某物时,都必须单击一个按钮。我想要做的是,第一步,当所有5个按钮都被单击时,然后该方法进入带有四个按钮的下一步,依此类推。

我可以尝试使用flowrouter代替编码,但将整个方法编码在一个文件中将使其更易于插入应用程序中。

SDImageCache.shared.config.maxDiskAge = 60 * 5 //5 minutes

1 个答案:

答案 0 :(得分:0)

类似的事情可能对您有用。对象存储是否单击了按钮。单击全部后,一个按钮被隐藏,该过程再次开始。

<button id="button1" onclick="myFunction(1)">Button1</button>
<button id="button2" onclick="myFunction(2)">Button2</button>
<button id="button3" onclick="myFunction(3)">Button3</button>
<button id="button4" onclick="myFunction(4)">Button4</button>
<button id="button5" onclick="myFunction(5)">Button5</button>


<script>
  // Current state
  var answered = {
    button1: false,
    button2: false,
    button3: false,
    button4: false,
    button5: false
  }

  var numberOfButtons = 5;

  function myFunction(buttonNumber) {
    // Update state on button click
    answered["button" + buttonNumber] = true;        
    // Have all buttons been clicked?
    var allTrue = Object.keys(answered).every(function(key){ return answered[key] === true });
    if (allTrue) {
      // Remove a button and reset state
      document.getElementById("button" + numberOfButtons).style.display = "none";
      delete answered["button" + numberOfButtons];
      Object.keys(answered).forEach(function(key){ answered[key] = "false" });
      numberOfButtons--;
    }
  }
</script>

CodePen example