jQuery不适用于<li>元素,但不适用于<a> elements</a> </li>

时间:2013-01-10 11:36:12

标签: jquery element

我有一些jQuery代码,当点击具有特定ID的项目时运行。当ID是<li>元素的一部分时,它正在工作,但当它在<a>元素中时却不行。为什么会这样?我想使用一个,因为它允许我实现一些东西,如果用户已关闭JavaScript。

编辑:阻止默认或返回false似乎没有任何区别。

下面的HTML和代码:

<li><a id="OfficeNav-Bath" class="first" href="#bath">Bath</a></li>

编辑:如果<a>元素中未指定HREF,则此方法有效。

$(function() {
    $("#OfficeNav-Bath").click(function(){
        $('.office').removeClass('visible');
    });             
});

知道为什么会这样吗?提前谢谢。

3 个答案:

答案 0 :(得分:4)

我认为您在使用<a>标签时并未阻止默认事件,因此请尝试:

$(function() {
   $("#OfficeNav-Bath").click(function(e){
     e.preventDefault();
     $('.office').removeClass('visible');
   });           
});

答案 1 :(得分:1)

您必须为点击事件添加一个简单的事情:

e.preventDefault();

答案 2 :(得分:1)

单击锚元素时,浏览器会尝试导航到锚点href属性指向的URL。

可以使用事件处理程序作为参数接收的preventDefault对象上的方法event覆盖此行为。

$("#OfficeNav-Bath").click(function(event){
    event.preventDefault();
    ...
});