0

マウスオーバーするとサブメニューが表示されるメニューがあります。しかし、#researchリンクがクリックされないようにしたいので、以下のjqueryを使用しました。しかし、これは私の「マイアプリケーション」リンクもクリックされるのを防ぎます。誰かが私を助けることができますか?

JQUERY

$('#research a').click(function(e){
e.preventDefault();
});

HTML

<li id="research"><a href="#">Research</a>
    <div class="submenu" style="display:none">
    <div class="submenuLeft">
        <ul>
            <li class="title">Application</li>
            <li><a href="/research/application">My Application</a></li>
        </ul>
    </div><!--submenuLeft-->
    </div><!--submenu-->
</li>
4

4 に答える 4

5

リンクにクラス属性を与える例:「非表示」

$('#research a.hide').click(function(e){
    e.preventDefault();
});

またはメソッド.first()を使用します

$('#research a').first().click(function(e){
    e.preventDefault();
});

また

$('#research a[href="#"]').click(function(e){
    e.preventDefault();
});

またはこのようなより良いもの

$('#research a').filter(function() {
    var $this = $(this);
    return $this.text().toLowerCase() == 'research';
}).click(function(e){
    e.preventDefault();
});
于 2013-01-11T15:19:38.820 に答える
2

で試してみてください

$('#research > a').click(function(e){
  e.preventDefault();
});

>aが。の直接の子孫であることを確認するために、が推奨されますli#research

first()すでに@algorhythmで言及されています。

これをスニペットよりわずかに下に変更すると、実行がより高速になります。

$('#research a:first-child').click(function(e){
    e.preventDefault();
});
于 2013-01-11T15:20:03.417 に答える
2

これを試してください。複数のリンクがある場合は、#が付いているものだけが適用されることを確認してください。href=#

$('#research a:[href="#"]').click(function(e){
    e.preventDefault();
});
于 2013-01-11T15:24:42.960 に答える
2
<li id="research"><a href="javascript:void(0)">Research</a>
于 2013-01-11T15:26:19.733 に答える