-2

アコーディオンメニューページをクリックすると上部に2つのセクションマップがあり、下部にjQueryアコーディオンメニューがあるページがあります.jQueryアコーディオンメニューが正しく表示されるように、ページは同じ場所に留まる必要があります。

これを防ぐ方法はありますか?メニューをクリックすると、ページはブラウザの同じ場所にとどまる必要がありますか?

menu.find('ul li > a').bind('click',function(event,ui){
    /*var ahref = $(event.currentTarget).attr('href');
    if(ahref!='#'){
        window.location.href = ahref;
    }else{*/

        var currentlink=$(event.currentTarget);
        if (currentlink.parent().find('ul.active').size()==1)
        {
            currentlink.parent().find('ul.active').slideUp('medium',function(){
               currentlink.parent().find('ul.active').removeClass('active');
            });
        }
        else if (menu.find('ul li ul.active').size()==0)
        {
            show(currentlink);
        }
        else
        {
            menu.find('ul li ul.active').slideUp('medium',function(){
                menu.find('ul li ul').removeClass('active');
                show(currentlink);
            });
        }
   /* }*/
});

アコーディオンメニューをスクロールするには

4

2 に答える 2

1

クリック イベント関数の最後にreturn falseorを追加する必要があります。そうしないと、ブラウザーは、ページ上の名前付きアンカーを見つけるようにブラウザーに指示するページ URI に追加することで、クリックしているリンクをたどります。アンカー名を指定していないため (たとえばの代わりに)、ブラウザーはページの上部にジャンプします。event.preventDefault()<a href="#">#http://www.url.com/page#http://www.url.com/page#anchorname

例えば

menu.find('ul li > a').bind('click',function(event, ui){
    // your code

    // choose one of the following lines
    return false
    event.preventDefault()
});
于 2013-03-27T10:41:22.813 に答える
0

stopPropagationevent.preventDefaultを使用するか、false を返すことができます...
または単に を に変更hrefjavascript:void(0)ます。

于 2013-03-27T10:40:42.643 に答える