以编程方式为任意数量的项目设置slideToggle

时间:2011-03-09 16:41:10

标签: jquery animation javascript-events

我有以下jQuery代码,工作正常:

$(document).ready(function () {
    $('#link1').click(function () {
    $('.data1').slideToggle('slow');
    });
    $('#link2').click(function () {
    $('.data2').slideToggle('slow');
    });
    /* so on a so forth */
});

link1是我对超链接周围的div标签的ID。如果用户单击超链接,Data1是我想要显示的内容的另一个div标签的ID。我的问题是,如果我有50个甚至100个超链接和内容与每个超链接,那么将这些代码列出50或100次并且每个ID单独列出将会很麻烦。

如何以编程方式执行此操作?我尝试设置for循环,但我可能搞砸了语法。我也尝试过使用“each()”函数。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

最简单的方法是为这些定义一个类,也是一个更好的ID。我会说这样的话:

<a href="#" id="link_1" class="toggle_link">Link 1 Text</a>
<div class="data_1">Fos</div>

<a href="#" id="link_2" class="toggle_link">Link 2 Text</a>
<div class="data_2">Fos Fos</div>

然后您可以轻松附加您的活动,如:

$('.toggle_link').click(function () {
  var name=this.id.split('_');
  $('.data_'+name[1]).slideToggle('slow');
});

我在下面放置下划线,以便轻松找到ID的起始位置。我不会说这是生产就绪的代码,但可以给你一个想法。

相关问题