2013-06-26 91 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; 
     }); 

}