您好我想问一下如何优化该代码:
$('#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();
});...
有循环或其他我不知道的东西?
答案 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();
})