2

アコーディオン メニューに次の jQuery を使用しています: http://jsfiddle.net/fPWeq/

rel = 0;
$('.sub-menu').hover(function(){ // findind mouse postion
        rel = 1; // if mouse on submenu
    }, function(){ 
        rel = 0;  // if mouse out submenu
});
$('.menu > li').live("click",function(){
        if(!$(this).hasClass("active")){ // if not already opened
            $('.sub-menu').slideUp();    // hide all other submenu
            $('.sub-menu',this).slideDown();  // show which your clicked
            $(".menu > li").remove('active');  //  remove all active class in li
            $(this).addClass('active'); //adding active class which your clicked li
        }
        else{
            if(rel==0){
                $('.sub-menu').slideUp(); // if clicked already opend parent that will close
                $(this).removeClass('active'); // remove all active class
            }
            else{
            }
        }
});
;​

サブメニューのリンクがクリックされたときに、アクティブな(事前に開いた)サブメニューが閉じて再び開くのを止める方法を理解するのに苦労しています。

私が間違っていることはありますか?

4

2 に答える 2

1

削除する class="current-parent" と、サブが開いていることが表示されないはずです。こちらをチェックhttp://jsfiddle.net/fPWeq/1/

于 2012-12-14T10:45:40.623 に答える
0

.toggleClass("current-parent")開閉を再度有効にしたい場合にも適しています。

于 2012-12-14T10:47:54.530 に答える