jQuery干优化

时间:2012-09-03 12:45:53

标签: jquery optimization coding-style refactoring

您好我想问一下如何优化该代码:

        $('#infoTrigger0').live('click', function() {
            $('#info0').slideToggle();
        });
        $('#infoTrigger1').live('click', function() {
            $('#info1').slideToggle();
        });
        $('#infoTrigger2').live('click', function() {
            $('#info2').slideToggle();
        });
        $('#infoTrigger3').live('click', function() {
            $('#info3').slideToggle();
        });
        $('#infoTrigger4').live('click', function() {
            $('#info4').slideToggle();
        });
        $('#infoTrigger5').live('click', function() {
            $('#info5').slideToggle();
        });...

有循环或其他我不知道的东西?

4 个答案:

答案 0 :(得分:1)

for (var i = 0; i < n; i++) {
$('#infoTrigger' +i).live('click', function () {
    $('#info' +i).slideToggle();
});

}

答案 1 :(得分:1)

怎么样? :

for(var i =0;i<6;i++){
  $('#infoTrigger' + i).live('click', function() {
      $('#info' + i).slideToggle();
  });
}

我建议使用on而不是live,因为现在已弃用。

答案 2 :(得分:1)

$(document).on('click', 'elem[id^=infoTrigger]', function() {
      var n = this.id.match(/\d+/g)
      $('#info'+n).slideToggle();
});
不推荐使用

live方法,您可以改用on

答案 3 :(得分:0)

如果你像这样制作HTML

<div class="info" id="info1">
  <div id="info1_sub"></div>
</div>

你可以申请这个

 $('.info').live('click', function() {
            var elem="#"+$(this).attr("id")+"_sub";
            $(elem).slideToggle();
        })