jquery div动画在3个div上同一个问题

时间:2013-03-04 21:04:37

标签: jquery

我不确定如何说出我的问题,所以我会尽力解释。

我的网站上只有主页,我正在尝试使用jquery动态更改主区域内容,这就是我现在拥有的内容

$(document).ready(function(){
    $('#link1').click(function(){
        $("#div2").hide("slide", { direction: "right" }, 500);
        $("#div3").hide("slide", { direction: "left" }, 500);
        $("#div1").delay(501).show("slide", {direction: "down" }, 500);
});

    $('#link2').click(function(){
        $("#div1").hide("slide", { direction: "right" }, 500);
        $("#div3").hide("slide", { direction: "left" }, 500);
        $("#div2").delay(501).show("slide", {direction: "down" }, 500);
});
    $('#link3').click(function(){
        $("#div2").hide("slide", { direction: "right" }, 500);
        $("#div1").hide("slide", { direction: "left" }, 500);
        $("#div3").delay(501).show("slide", {direction: "down" }, 500);
}); });

我的问题是如果我点击一个隐藏当前不显示的div的链接,它会显示div然后隐藏它。

我如何对抗这个?

1 个答案:

答案 0 :(得分:0)

我不确定这是不是你问的问题 如果你能提供一个例子,那将是最好的。

您可以简单地检查div是否可见,并仅在可见的情况下运行滑动动画。

例如:

$('#link1').click(function(){
    if ($('#div2').is(':visible')){
        $("#div2").hide("slide", { direction: "right" }, 500);
    }

    if ($('#div3').is(':visible')){
        $("#div3").hide("slide", { direction: "left" }, 500);
    }

    $("#div1").delay(501).show("slide", {direction: "down" }, 500);
});

另一件事,我建议你使用类而不是id。编写所有可能的组合没有多大意义。想象一下,你有10个链接......这是很多不必要的代码