Javascript:单击所有按钮时的功能

Posted

技术标签:

【中文标题】Javascript:单击所有按钮时的功能【英文标题】:Javascript: When all buttons are clicked function 【发布时间】:2022-01-13 01:50:28 【问题描述】:

您好先生,我正在练习我的香草 javascript。当从按钮上单击正确的字母时,我正在尝试创建一个“刽子手游戏”。你赢了。我在查询选择器中有所有这些按钮(从字母 A 到字母 Z)。

使用这个函数的问题.. the winAlert = visible implementsletterS 被点击时(“谨慎”的最后一个字母)。

那么有没有办法当你以任何顺序单击所有谨慎字母时,winAlert.style.visibility = "visible" 将在函数内部执行?

在过去的几个小时里,我已经尝试了所有方法。buttons.forEach、切片等。没有任何效果。

function youWonCautious() 
  var buttons = [letterC, letterA, letterT, letterI, letterU, letterI, letterO, letterS]
  for (var i = 0; i < buttons.length; i++) 
    var button = buttons[0, 1, 2, 3, 4, 5, 6, 7];

    button.onclick = function() 
      winAlert.style.visibility = "visible"

    
  

【问题讨论】:

var button = buttons[0, 1, 2, 3, 4, 5, 6, 7]; 不会做你认为的那样。 【参考方案1】:

按钮不会自动保持任何关于它们是否被点击的状态。您可以使用按钮的dataset 属性自行完成。

然后你的函数可以测试是否所有的按钮都设置了这个属性。

或者您可以将按钮更改为复选框,并使用checked 属性。

function allButtonsClicked(buttons) 
  return buttons.every(b => b.dataset.chosen == 'true')


function youWonCautious() 
  var buttons = [letterC, letterA, letterT, letterI, letterU, letterO, letterS];
  buttons.forEach(button => 
    button.dataset.chosen = 'true';
    if (allButtonsClicked(buttons)) 
      winAlert.style.visibility = "visible";
    
  );

【讨论】:

【参考方案2】:

您可以创建一个全局数组,在其中记录用户单击的字母。检查全局数组变量和答案数组中的字母。 如果匹配,则通过警报消息,否则将失败消息发送给用户。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于Javascript:单击所有按钮时的功能的主要内容,如果未能解决你的问题,请参考以下文章

Java:单击按钮时的 JDBC 连接问题

通过单击按钮循环浏览 Jlabel 的图像时的 for 循环问题

使用 RxSwift 和 RXCocoa 验证按钮单击时的所有文本字段

在 iOS 中单击按钮时的标签和框架扩展

几小时/分钟后单击按钮时的提醒通知

更改按钮单击时的 viewController