Javascript JQuery在单击时停止显示/隐藏

Javascript JQuery在单击时停止显示/隐藏,javascript,jquery,click,show,show-hide,Javascript,Jquery,Click,Show,Show Hide,我有一个代码片段,当你点击菜单项时会显示一个div,这个空间中有不同的div,菜单所做的是隐藏之前的div并显示新的div,问题是当我点击同一菜单项时,它会再次显示当前div,我想阻止这种情况发生,它应该只显示动画,如果它不是当前的,如果它是什么都不应该发生 以下是代码片段: var curPage=""; $("#menu a").click(function() { if (curPage.length) { $("#"+curPage).hide("slide"

我有一个代码片段,当你点击菜单项时会显示一个div,这个空间中有不同的div,菜单所做的是隐藏之前的div并显示新的div,问题是当我点击同一菜单项时,它会再次显示当前div,我想阻止这种情况发生,它应该只显示动画,如果它不是当前的,如果它是什么都不应该发生

以下是代码片段:

var curPage="";
$("#menu a").click(function() {
     if (curPage.length) { 
        $("#"+curPage).hide("slide");
     }
     curPage=$(this).data("page");
     $("#"+curPage).show("slide");
});      

下面是一个演示它是如何发生的:

只需添加一个额外的检查,看看
curPage
是否与单击的页面相同

var curPage;
$("#menu a").click(function () {
    var page = $(this).data("page");
    if (curPage && page != curPage) {
        $("#" + curPage).stop().hide("slide");
    }
    $("#" + page).stop().show("slide");

    curPage = page;
});

演示:

检查第一次单击的数据页

var curPage="";
$("#menu a").click(function() {
    var newPage = $(this).data("page");
    if (newPage !== curPage) {
         $("#"+curPage).hide("slide");
         $("#"+newPage).show("slide");
         curPage = newPage;
    }         
});   

您必须检查before页面是什么,添加一个变量

var curPage="";
$("#menu a").click(function() {
     var page=$(this).data("page");
     if (curPage!=page && curPage.length) { 
        $("#"+curPage).hide("slide");
         curPage=$(this).data("page");
     }
     $("#"+curPage).show("slide");
});   

就像这把小提琴一样

你想这样吗?我单击同一链接后,它仍然会显示动画,我知道我听起来很困惑,谢谢你花时间回答!你想说什么?谢谢,其他答案也是对的,但我投票支持这一个,因为它还显示了.stop()函数,当我点击另一个链接时可以剪切动画,这真的很酷,我不知道,谢谢你的回答!这个答案也是正确的,谢谢你,它让我了解了如何处理这种情况,我完全忘记了,我对编程非常陌生,谢谢你花时间回答!