|
|
1
4
JavaScript没有块作用域,所以你在for循环中声明的那些变量每次迭代都会改变它们的值,所有这些函数都引用相同的变量。诀窍是在for循环中创建一个新的函数作用域,以便在迭代过程中绑定您声明的变量。 你可以通过在循环中执行匿名函数来实现这一点:
按照以前的方式,所有函数都在相同的变量引用上关闭,因此使用最后一个值,而不是创建函数时的值。使用函数作用域将使其按预期运行。 |
|
|
2
1
你的问题是 悬停事件 发生在执行方法的范围之外。因此,当悬停执行您的 积极的 变量已经遍历了整个集合,并处于最后一个元素的活动状态。所以你看到这个问题是因为最后一个日志是一个事件,它超出了范围,而另外两个在循环中在范围内。 试试这个:
这实际上会将“active”值存储在DOM元素中,以便在作用域中访问它。 |
|
|
3
0
我绞尽脑汁,因为这是一个奇怪的问题,但我稍微重构了这个函数,可能会有用(哦,与此同时,有更聪明的人回答了):
|
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 11 月前 |
|
|
Dr.0000FF · jQuery按钮点击不显示/隐藏内容 11 月前 |
|
|
user28928120 · 如何在jquery中选择所有类? 12 月前 |
|
|
LauraNMS · 如何使用Waypoints js实现粘性元素和偏移量 12 月前 |
|
Eliable · 使点击计数器和进度条协同工作 1 年前 |
|
Jack Maessen · 在处理程序上使用时如何获取输入类型 1 年前 |