2013-06-26 59 views
0

我想设置我的导航链接,当我按下它并保持活动状态时,它工作正常,但是当我应用此jQuery脚本时,我无法打开任何链接到其他.html页面。这是我的标记:Twitter Bootstrap主动导航链接

 <ul class="nav"> 
      <li><a href="#">Home</a></li> 
      <li><a href="#blog">Blog</a></li> 
      <li><a href="about.html">About Me</a></li> 
      <li><a href="#contact">Contact Me</a></li> 
     </ul> 

...和我的jQuery:

<script> 
    $(document).ready(function() { 
     $('ul.nav > li').click(function (e) { 
      e.preventDefault(); 
      $('ul.nav > li').removeClass('active'); 
      $(this).addClass('active');     
     });    
    }); 
    </script> 

得到任何帮助。

+2

为什么你需要e.preventDefault()?我的猜测是它会阻止导航! – sumitkm

+0

谢谢:)。删除它,一切工作正常:) –

回答

4

在您的代码中,您可以防止链接默认点击行为(打开页面)。

试试这样:

$(document).ready(function() { 
     $('ul.nav > li a').click(function (e) { 
      $(this).closest('ul.nav').find('.active').removeClass('active'); 
      $(this).parent().addClass('active');     
     });    
    }); 
+0

谢谢,YD1m,这一个工程太。我只需要删除e.preventDefault():) –

+1

好吧,'a'和'li'元素的边界可以不同。在我的示例中,只处理“a”的单击就是非常规练习。如果你想处理对'li'元素的点击,你可以改变'cursor'的属性风格来向用户显示'li'是可点击的:) – YD1m

0

这是我的代码:

$(function() { 

     $(document).on('click', '.ul.nav li', function() { 
      var $this = $(this); 

      $this.siblings('li').removeClass('active'); 
      $this.addClass('active'); 

      return false; 
     }); 

}