【发布时间】:2013-11-10 03:29:45
【问题描述】:
请不要立即将此标记为重复。我看过类似的问题,但仍然无法弄清楚。
这是我目前拥有的:
$(document).ready(function(){
for(var i=1;i<2;i++)
{
$("#MenuBarButton"+i).mouseover(function(){
$("#ldheMenuBarLayer"+i).stop().animate({height:'66px'},{queue:false, duration:600, easing: 'easeOutBounce'})
});
$("#MenuBarButton"+i).mouseout(function(){
$("#ldheMenuBarLayer"+i).stop().animate({height:'41px'},{queue:false, duration:600, easing: 'easeOutBounce'})
});
}
});
这行不通。没有任何反应,控制台中也没有出现任何内容。但是,如果我在每个$ 函数中直接用1 替换i,它就可以工作。
我不是编程新手,但我是 JavaScript 新手,所以我做的事情显然是错误的吗?谢谢!
编辑:当我说我用1 替换i 时,那是因为ID 是MenuBarButton1 和ldheMenuBarLayer1。
【问题讨论】:
-
你的 for 循环只执行一次... 为什么要使用 for 循环?如果 i=1 并且它只计算为 i
-
1.尝试将数值变量
i强制为字符串:.. +String(i)。 2.这里不需要循环:for (var i=1;i<2;i++)只会“循环”一次,i=1。 -
@SoylentGreen 因为一旦我用一个按钮就可以使用它,它将循环播放大约 5 或 6 个。
-
@Jongware 数字在带有字符串的
+表达式中使用时会隐式转换为字符串。 -
没有真正回答您的问题,但您可以使用
$('[id^="MenuBarButton"]')选择所有具有以“MenuBarButton”开头的 id 属性的元素,因此您根本不需要该循环。
标签: javascript string variables concatenation