我有两个代码部分,我想让它更简单一些。 它们都是JQuery代码,我想在代码中减少它。应该有其他方法来做到这一点......
第一个:
$(document).ready(function(){$(".floorplan0").click(function(){ $(".layout0").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan1").click(function(){ $(".layout1").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan2").click(function(){ $(".layout2").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan3").click(function(){ $(".layout3").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan4").click(function(){ $(".layout4").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan5").click(function(){ $(".layout5").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan6").click(function(){ $(".layout6").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan7").click(function(){ $(".layout7").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan8").click(function(){ $(".layout8").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan9").click(function(){ $(".layout9").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan10").click(function(){$(".layout10").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan11").click(function(){$(".layout11").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan12").click(function(){$(".layout12").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan13").click(function(){$(".layout13").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan14").click(function(){$(".layout14").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan15").click(function(){$(".layout15").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan16").click(function(){$(".layout16").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan17").click(function(){$(".layout17").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan18").click(function(){$(".layout18").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan19").click(function(){$(".layout19").slideToggle(0); }); });
$(document).ready(function(){$(".floorplan20").click(function(){$(".layout20").slideToggle(0); }); });
第二个:
$(document).ready(function(){
$("#pic0").show();
$("#pic1").hide();
$("#pic2").hide();
$("#pic3").hide();
$("#pic4").hide();
$("#pic5").hide();
$("#pic6").hide();
$("#pic7").hide();
$("#pic8").hide();
$("#pic9").hide();
$("#pic10").hide();
$("#pic11").hide();
$("#pic12").hide();
$("#pic13").hide();
$("#pic14").hide();
$("#pic15").hide();
$("#pic16").hide();
$("#pic17").hide();
$("#pic18").hide();
$("#pic19").hide();
$("#pic20").hide();
$("#pic21").hide();
$("#pic22").hide();
$("#pic23").hide();
$("#pic24").hide();
$("#pic25").hide();
$("#show1").click(function(){
$("#pic0").hide();
$("#pic1").show();
$("#pic2").hide();
$("#pic3").hide();
$("#pic4").hide();
$("#pic5").hide();
$("#pic6").hide();
$("#pic7").hide();
$("#pic8").hide();
$("#pic9").hide();
$("#pic10").hide();
$("#pic11").hide();
$("#pic12").hide();
$("#pic13").hide();
$("#pic14").hide();
$("#pic15").hide();
$("#pic16").hide();
$("#pic17").hide();
$("#pic18").hide();
$("#pic19").hide();
$("#pic20").hide();
$("#pic21").hide();
$("#pic22").hide();
$("#pic23").hide();
$("#pic24").hide();
$("#pic25").hide();
});
$("#show2").click(function(){
$("#pic0").hide();
$("#pic1").hide();
$("#pic2").show();
$("#pic3").hide();
$("#pic4").hide();
$("#pic5").hide();
$("#pic6").hide();
$("#pic7").hide();
$("#pic8").hide();
$("#pic9").hide();
$("#pic10").hide();
$("#pic11").hide();
$("#pic12").hide();
$("#pic13").hide();
$("#pic14").hide();
$("#pic15").hide();
$("#pic16").hide();
$("#pic17").hide();
$("#pic18").hide();
$("#pic19").hide();
$("#pic20").hide();
$("#pic21").hide();
$("#pic22").hide();
$("#pic23").hide();
$("#pic24").hide();
$("#pic25").hide();
});
... And so on until ...
$("#show25").click(function(){
$("#pic0").hide();
$("#pic1").hide();
$("#pic2").hide();
$("#pic3").hide();
$("#pic4").hide();
$("#pic5").hide();
$("#pic6").hide();
$("#pic7").hide();
$("#pic8").hide();
$("#pic9").hide();
$("#pic10").hide();
$("#pic11").hide();
$("#pic12").hide();
$("#pic13").hide();
$("#pic14").hide();
$("#pic15").hide();
$("#pic16").hide();
$("#pic17").hide();
$("#pic18").hide();
$("#pic19").hide();
$("#pic20").hide();
$("#pic21").hide();
$("#pic22").hide();
$("#pic23").hide();
$("#pic24").hide();
$("#pic25").show();
});
});
感谢您的帮助!
答案 0 :(得分:3)
第一个:
$(document).ready(function(){
for (var i = 0; i <= 20; i++)
{
$(".floorplan"+i).click(function(){ $(".layout"+i).slideToggle(0); });
}
});
为第二个创建一个函数:
function showHide(show);
{
for (var i = 0; i <= 25; i++)
{
if (i == show)
{
$("#pic"+i).show();
}
else
{
$("#pic"+i).hide();
}
}
}
您可以附加到点击功能的第二个。 我们甚至可以优化:
$(document).ready(function(){
showHide(0); //start with showing the first
for (var i = 0; i <= 25; i++) //attach all click handlers
{
$("#show"+i).click(function(){
showHide(i); //invoke the showHide function when clicked referencing the correct index.
}
}
});
就个人而言,我会编写不同的show / hide函数,但根据你发布的代码,我会以这种方式优化它。它在 Casimir et Hippolyte 的评论中提到。使用通用类名并将索引存储在某处。
答案 1 :(得分:3)
正如Casimir所说,使用一个普通的课程。在这里,我还使用了数据属性:
HTML
<div class="floorplan" data-id="0">0</div>
<div class="floorplan" data-id="1">1</div>
<div class="floorplan" data-id="2">2</div>
<div class="floorplan" data-id="3">3</div>
JS
$(".floorplan").click(function () {
var id = $(this).data('id');
$('.layout' + id).slideToggle(0);
});
对案例2使用类似的技术,例如:
$(".show").click(function () {
var id = $(this).data('id');
$('.pic').hide();
$('.pic[data-id="' + id + '"]').show();
});