jQuery fadeIn 和 fadeOut - 交换 div

标签 jquery html fadein fadeout

总的来说,我对 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/

相关文章:

javascript - 如何在点击谷歌地图中的信息窗口时显示地址

javascript - 从 php 变量中的 javascript 函数获取值

php - HTML/PHP : Which parts of an HTML head can be saved in a separate file

javascript - 淡入淡出加载CSS3动画的最佳方法

javascript - 使用 Javascript 和 jQuery 顺序加载 fadeIn 效果

javascript - 帮助理解 Javascript 不寻常的函数声明语法

javascript - 你能动态地制作 SVG 动画吗?

jquery - 简单的 fadeOut/In 比我想象的更复杂?

html - 列固定高度 - 保持图像纵横比?

javascript - 如何创建带背景重复的梯形div