jquery slideUp和slidedown回调重复

时间:2015-03-28 17:57:00

标签: jquery html

我正在创建一个jquery手风琴并且触发效果是onclick,我有问题,因为在ul的最后一级有一个slideUp和slideDown的多余动作,当我执行以下操作时出现错误

-

  1. 点击“按钮”
  2. - 选择并单击A或任何(A,B或C)
  3. - 然后选择并单击A.1或任何..
  4. - 然后再次点击其父A
  5. - 然后单击A再次打开
  6. - 点击任何一个孩子
  7. 正如您所注意到的,您只需点击一次,但会触发slideUp和slideDown。 这是我的jquery

    $(document).ready(function() {
    $("#ins-type").appendTo("li.prd");
    $("li.prd>a").click(function(event){
        event.preventDefault();
        $("#ins-type").slideToggle();
    });
    $("#ins-type>li>a").stop().click(function(event){
        event.preventDefault();
        if($(this).parent().hasClass("act")){
           $(this).parent().find('ul').find(".act").find('.the-ins-desc').slideUp().parent().removeClass("act");
            $(this).parent().find("ul.the-ins").slideUp();
            $(this).parent().removeClass("act");
        }else{
            $("#ins-type>li").removeClass("act").find("ul.the-ins").slideUp();
            $(this).parent().addClass("act");
            $(this).parent().find("ul.the-ins").slideDown(function(){
                    $(this).find('li').children('a').click(function(event){
                        event.preventDefault();
                        if($(this).parent().hasClass("act")){
                            $(this).parent().removeClass("act");
                            $(this).parent().find("ul").slideUp();
                            console.log("clise");
                        }else{
                            $(".the-ins>li").removeClass("act").find('.the-ins-desc').slideUp();
                            $(this).parent().addClass("act").find("ul").stop().slideDown();
                            console.log("open");
                        }
                        return false;
                    });
            });
        }
    });
    });
    

    Fiddle Sample

1 个答案:

答案 0 :(得分:0)

你的最后一个“if,else”语句,在括号中输入false。

https://jsfiddle.net/mx64mswn/1/

if($(this).parent().hasClass("act")){
                        $(this).parent().removeClass("act");
                        $(this).parent().find("ul").slideUp();
                        console.log("clise");
                        return false;
                    }else{
                        $(".the-ins>li").removeClass("act").find('.the-ins-desc').slideUp();
                        $(this).parent().addClass("act").find("ul").stop().slideDown();
                        console.log("open");
                        return false;
                    }