带有可变变量的for()循环 [英] for() loops with mutable variables

查看:71
本文介绍了带有可变变量的for()循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

HTML:

<a id="link1" href="#">LINK1</a>
<div id="text1" style="display: none;">text1 div</div>

<a id="link2" href="#">LINK2</a>
<div id="text2" style="display: none;">text2 div</div>

<a id="link3" href="#">LINK3</a>
<div id="text3" style="display: none;">text3 div</div>

JS:

for (var i = 0; i <= 500; i++) {
  $('#link' + i).click(function() {
    $('#text' + i).toggle('fast');
    return false;
  });
}

但是它不起作用.想法是使每个#link(number)显示适当的#text(number)块.但是此刻,我的phpstorm说"i"是可变变量....在此先感谢

but it's not working. Idea is to make each #link(number) showing appropriate #text(number) block. But at this momenty my phpstorm says "i" is mutable variable.... Thanks in advance

推荐答案

我认为您可以执行以下操作:

I think you could do the following:

向每个对象添加一个类"targetLink":

Add a class "targetLink" to every :

<a id="link1" class="targetLink" href="#">LINK1</a>

替换针对类本身的for循环:

Replace the for loop targeting the class itself:

$("a.targetLink").toggle(function() {
    $(this).next("div").slideDown(350);
}, function() {
    $(this).next("div").slideUp(350);
});

提琴: http://jsfiddle.net/VinnyFonseca/yxpCA/

额外的功能,用于在单击另一个项目时关闭以前打开的div.

Extra functionality for closing previously opened div when clicking on another item.

$("a.targetLink").toggle(function() {
    $(".open").slideUp(350);
    $(this).next("div").slideDown(350).addClass("open");
}, function() {
    $(this).next("div").slideUp(350).removeClass("open");
});

这篇关于带有可变变量的for()循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆