3

こんにちは、そのコードを最適化する方法を知りたいです:

        $('#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

4 に答える 4

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

liveonメソッドは非推奨です。代わりに使用できます。

于 2012-09-03T12:52:38.793 に答える
1
for (var i = 0; i < n; i++) {
$('#infoTrigger' +i).live('click', function () {
    $('#info' +i).slideToggle();
});

}

于 2012-09-03T12:48:39.240 に答える
1

どうですか?:

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

最後のものは現在廃止されているため、onoverを使用することをお勧めします。live

于 2012-09-03T12:51:10.907 に答える
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();
        })
于 2012-09-03T12:49:34.567 に答える