|
|
1
4
JavaScript没有块作用域,所以你在for循环中声明的那些变量每次迭代都会改变它们的值,所有这些函数都引用相同的变量。诀窍是在for循环中创建一个新的函数作用域,以便在迭代过程中绑定您声明的变量。 你可以通过在循环中执行匿名函数来实现这一点:
按照以前的方式,所有函数都在相同的变量引用上关闭,因此使用最后一个值,而不是创建函数时的值。使用函数作用域将使其按预期运行。 |
|
|
2
1
你的问题是 悬停事件 发生在执行方法的范围之外。因此,当悬停执行您的 积极的 变量已经遍历了整个集合,并处于最后一个元素的活动状态。所以你看到这个问题是因为最后一个日志是一个事件,它超出了范围,而另外两个在循环中在范围内。 试试这个:
这实际上会将“active”值存储在DOM元素中,以便在作用域中访问它。 |
|
|
3
0
我绞尽脑汁,因为这是一个奇怪的问题,但我稍微重构了这个函数,可能会有用(哦,与此同时,有更聪明的人回答了):
|
|
|
Peter · DFS遍历中的(java)奇怪列表值 8 年前 |
|
|
Fawad Bin Tariq · 二叉搜索树递归混淆 9 年前 |
|
|
Elessar.perm · Neo4j循环性能 9 年前 |
|
|
KlydeMonroe · Umbraco-仅获取文档类型的子元素 10 年前 |
|
|
Brett · Python Trie:如何遍历它来构建所有单词的列表? 10 年前 |
|
|
Stream Major · Neo4j:K-Hop与Cypher距离3 10 年前 |
|
|
whisperstream · 如何找到嵌入集包含值“x”的边? 10 年前 |
|
|
morne · 是否可以通过遍历检测更改? 11 年前 |
|
|
triplethreat77 · 使用选定的表输入更新特定的div输入 11 年前 |