Javascript 动画CC HTML5试图通过调用字符串更改全局变量

Javascript 动画CC HTML5试图通过调用字符串更改全局变量,javascript,html,canvas,scope,flash-cc,Javascript,Html,Canvas,Scope,Flash Cc,我是一名资深的actionscript程序员,正在尝试javascript。大多数情况下,它并不太复杂,但我在创建大量类似于切换的按钮时遇到了一些问题。这是到目前为止的代码(我删除了一堆代码,但其中大约有20个,而不仅仅是5个) 这并不会导致newName在按下两个按钮时能够实际访问aTwoOn,或者按我所希望的任何按钮。我觉得我只是在范围上遗漏了一些东西,但似乎无法确定需要做什么 感谢您对这个noobie的一切帮助。我想这与线路有关 var newName=“a”+event.currentT

我是一名资深的actionscript程序员,正在尝试javascript。大多数情况下,它并不太复杂,但我在创建大量类似于切换的按钮时遇到了一些问题。这是到目前为止的代码(我删除了一堆代码,但其中大约有20个,而不仅仅是5个)

这并不会导致newName在按下两个按钮时能够实际访问aTwoOn,或者按我所希望的任何按钮。我觉得我只是在范围上遗漏了一些东西,但似乎无法确定需要做什么


感谢您对这个noobie的一切帮助。

我想这与线路有关

var newName=“a”+event.currentTarget.name+“On”

如果
event.currentTarget.name
结果是
未定义的
,则
newName
将计算为

var newName=“aundefinedOn”

这可能就是原因,对于您的用例来说,它一定是失败的。另外,如果不看你的
HTML
,也有点难说

您可以
添加
删除
元素类,而无需修改变量的状态,该变量可跟踪按钮是否切换

另外,您可以使用一个公共类,将事件处理程序绑定到具有该类的元素,而不是单独将事件绑定到每个按钮

JS

let toggleElems = document.querySelectorAll('.toggle');

toggleElems.forEach(function(elem) {
  elem.addEventListener("click", highlightButton);
});


function highlightButton(event) {
  let elem = event.target;
  console.log("You have selected a button " + event.currentTarget.name);
  var newName = "a" + elem.name + "On";
  var isOn = elem.classList.contains('on');

  if (isOn) {
    console.log("we should be turning it false now");
    elem.classList.remove('on');
  } else {
    console.log("we should be turning it true now");
    elem.classList.add('on');
  }
}
HTML

<div class="toggle" name="one">
  toggle 1
</div>
<div class="toggle" name="two">
  toggle 2
</div>
<div class="toggle" name="three">
  toggle 3
</div>
<div class="toggle" name="four">
  toggle 4
</div>
<div class="toggle" name="five">
  toggle 5
</div>

你能描述一下发生了什么吗?当然。。。在游戏中,学生们将选择20种他们需要练习的问题,这些问题将显示在20个按钮中。当他们点击一个按钮时,它会高亮显示。如果他们再次单击它,它将取消高亮显示。然后,当他们选择了所有他们想练习的内容后,他们将点击“完成”按钮。这部分代码基本上是切换不同的选项。一旦他们点击“完成”,它将浏览并查看哪些问题出现,并将其添加到问题列表中。希望有意义。@NatashaOliver
HTML
pleaseSorry,这一切都是在动画CC中完成的,所以现在没有HTML。需要知道
event.currentTarget.name
的计算结果是什么。这可能是你的代码不起作用的根本原因。虽然我不确定我是否能完全按照你的建议去做,但我确实看到了创建类然后添加和删除参数的好处。我将看看我是否可以在Animate CC中使用javascript来实现这一点。
<div class="toggle" name="one">
  toggle 1
</div>
<div class="toggle" name="two">
  toggle 2
</div>
<div class="toggle" name="three">
  toggle 3
</div>
<div class="toggle" name="four">
  toggle 4
</div>
<div class="toggle" name="five">
  toggle 5
</div>
var highlightedElements = document.querySelectorAll('.toggle.on');