0

我不确定如何表达我的问题,所以我会尽我所能解释。

我的网站上只有主页,我正在尝试使用 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 然后隐藏它。

我该如何对抗这个?

4

1 回答 1

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 个链接......这是很多不必要的代码

于 2013-03-04T21:56:01.203 回答