2

slideDown メニューのリンクに問題があります。

リンクをクリックできないのはなぜですか?

ここで確認できます: JSFiddle

私のjQueryコードは次のとおりです。

$('.links').hide();
$('.header a').click(function(e) {
    $(this).next('.links').slideToggle('normal');
    e.preventDefault();
});
4

3 に答える 3

1

それを削除e.preventDefault()すると、デフォルトのアクションが妨げられますclick()

$('.header a').click(function(e) {
            $(this).next('.links').slideToggle('normal');
            //e.preventDefault();
        });

デモはこちら

于 2013-05-13T08:51:22.503 に答える
1

セレクター.header aは、不要な 内に含まれるすべてのアンカーに影響し.headerます。toggle()の直接の子であるアンカー.headerがクリックされた場合にのみ必要です。

$('.header > a').click(function(e) {
    e.preventDefault();
    $(this).next('.links').slideToggle('normal');
});
于 2013-05-13T08:54:11.643 に答える
0

これを使用e.preventDefault();すると、発生するデフォルトのアクションが停止します。つまり、HREF はページを新しい場所に移動します。リンクを削除するe.preventDefault()と、リンクは再び「アクティブ」になります。

更新されたコード

$('.header a').click(function(e) {
    $(this).next('.links').slideToggle('normal');
});

jQuery ドキュメントから: http://api.jquery.com/event.preventDefault/

e.preventDefault()- このメソッドが呼び出された場合、イベントのデフォルト アクションはトリガーされません。たとえば、アンカーをクリックしても、ブラウザーは新しい URL に移動しません。

于 2013-05-13T08:52:42.160 に答える