总的来说,我对 jQuery 和 javascript 很陌生,但感谢这些网站,我正在努力学习。
我有一个包含六个隐藏 div 的页面,这些 div 是通过带有各个 id 的相应链接来调用的。当每个 div 变得可见 (.fadeIn) 时,当前显示的 div 将隐藏 (.fadeOut)。
一切正常,但我的代码似乎非常长且笨拙。 有没有一种更简单、更短、代码密集程度更少的方法来执行相同的任务?
这是我的js:
提前非常感谢。 迈克
$(document).ready(function(){
$("#link1").click(function() {
$("#panel2").fadeOut("slow", function() {
$("#panel3").fadeOut("slow", function() {
$("#panel4").fadeOut("slow", function() {
$("#panel5").fadeOut("slow", function() {
$("#panel6").fadeOut("slow", function() {
$("#panel1").fadeIn("slow")});
});
});
});
});
});
$("#link2").click(function() {
$("#panel1").fadeOut("slow", function() {
$("#panel3").fadeOut("slow", function() {
$("#panel4").fadeOut("slow", function() {
$("#panel5").fadeOut("slow", function() {
$("#panel6").fadeOut("slow", function() {
$("#panel2").fadeIn("slow")});
});
});
});
});
});
$("#link3").click(function() {
$("#panel1").fadeOut("slow", function() {
$("#panel2").fadeOut("slow", function() {
$("#panel4").fadeOut("slow", function() {
$("#panel5").fadeOut("slow", function() {
$("#panel6").fadeOut("slow", function() {
$("#panel3").fadeIn("slow")});
});
});
});
});
});
$("#link4").click(function() {
$("#panel1").fadeOut("slow", function() {
$("#panel2").fadeOut("slow", function() {
$("#panel3").fadeOut("slow", function() {
$("#panel5").fadeOut("slow", function() {
$("#panel6").fadeOut("slow", function() {
$("#panel4").fadeIn("slow")});
});
});
});
});
});
$("#link5").click(function() {
$("#panel1").fadeOut("slow", function() {
$("#panel2").fadeOut("slow", function() {
$("#panel3").fadeOut("slow", function() {
$("#panel4").fadeOut("slow", function() {
$("#panel6").fadeOut("slow", function() {
$("#panel5").fadeIn("slow")});
});
});
});
});
});
$("#link6").click(function() {
$("#panel1").fadeOut("slow", function() {
$("#panel2").fadeOut("slow", function() {
$("#panel3").fadeOut("slow", function() {
$("#panel4").fadeOut("slow", function() {
$("#panel5").fadeOut("slow", function() {
$("#panel6").fadeIn("slow")});
});
});
});
});
});
});
最佳答案
有了你的 ID,它可能是这样的:
$.each([1,2,3,4,5,6], function(_, index) {
$('#link' + index).click(function() {
$('[id^=panel]').fadeOut('slow', function() {
$('#panel' + index).fadeIn('slow');
});
})
})
关于jQuery fadeIn 和 fadeOut - 交换 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5571110/