3

ハンドルのリンクをクリックして<nav>開閉することで明らかにしたいものがあります。<nav>また、子リンクの1つをクリックしたときに閉じたいと思います。slideToggleハンドルリンクと子の両方での使用は機能していません。ハンドルリンクは問題なく機能し<nav>ますが、子リンクをクリックすると折りたたまれて元に戻ります。

何が起こっているのjsFiddle:http: //jsfiddle.net/qHZe8/

前もって感謝します!

4

4 に答える 4

3

要素<ul>にもクラスpullがあるため、その中のリンクの1つをクリックすると、clickイベントハンドラーが起動され、要素が再び切り替わります。

<ul>これが起こらないように、内部のリンクから伝播するイベントを停止する必要があります。

jQuery("ul.pull li a").click(function(e) {
    e.stopPropagation();
    $("nav.mobile-navigation").slideUp("fast");
});
于 2012-05-30T15:56:04.550 に答える
1

問題は、クラスを持つ2つの要素があることですpull

考えられる解決策の1つは、別のセレクターを使用することです。

jQuery("a.pull").click(function() {
    $("nav.mobile-navigation").slideToggle("fast");
});

デモ:http: //jsfiddle.net/qHZe8/1/

于 2012-05-30T15:55:34.193 に答える
1

問題は、ulとリンクで同じクラスを使用して開いているため、子リンクをクリックするたびに両方のアクションが実行されることです。

ulタグからクラスを削除すると、機能するはずです

http://jsfiddle.net/slfede/qHZe8/2/

于 2012-05-30T15:56:20.090 に答える
0

とハンドルの.pull両方に同じCSSクラス()を指定しました。<ul>したがって、アイテムのクリックは、.pullハンドラーのクリックとしても登録されます。正しいもの: http: //jsfiddle.net/X2A3C/

于 2012-05-30T15:57:47.847 に答える