0

我有一个菜单,当您将鼠标悬停时,会出现子菜单。但我希望防止点击#research 链接,所以我使用了下面的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
<li id="research"><a href="javascript:void(0)">Research</a>
于 2013-01-11T15:26:19.733 回答
2

尝试

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

>最好确保 a 是 的直接后代li#research

@algorhythmfirst()已经提到过。

将其稍微更改为以下代码段将执行得更快。

$('#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 回答