2
   $("#nav ul li:not(:has(li.current))")
       .find("ul").hide().end() // Hide all other ULs
       .click(function() {
           $(this).children('ul').slideToggle('fast');
       });

ネストされたulliを使用し、クリックするとレベルが展開される上記のコードがあります。ただし、2回目のクリックでレベルを縮小したいのですが、上記はクリックされたレベルだけでなく、すべてのレベルを縮小します。

編集:たとえばこれを参照してください

4

2 に答える 2

2

何をしようとしているのか100%確信はありませんが、イベントがハンドラー要素で発生したかどうかを確認することで、不要なスライドを回避できると思います。

$(document).ready(function() {
    $("#nav ul li:not(:has(li.current))").find("ul").hide().end() // Hide all other ULs
    .click(function(e) {
        if (this == e.target) {  // if the handler element is where the event originated
            $(this).children('ul').slideToggle('fast');
        }
    });
});

jsFiddle

于 2011-05-25T19:55:03.073 に答える
0

トグル()を使用してfalseを返すだけで、伝播を停止できます。 Use This Example

于 2011-05-25T19:39:22.483 に答える