2013-01-07 79 views
0

我發現很多類似的問題,但遺憾的是沒有人真的與我的問題幫助...jQuery - 我點擊時如何在li元素上添加一個類?

我有一個導航列表

<div class="nav-container"> 
    <ul> 
      <li><a href="index.php">Home</a></li> 
      <li><a href="contact.php">Contact</a></li> 
    </ul> 
</div> 

我想給一類錨標籤(未'李'),當我點擊它。到目前爲止,我有:

$(".nav-container li a").click(function(){ 
    $('.nav-container li a').removeClass('nav-active'); 
    $(this).addClass('nav-active'); 
}) 

它似乎添加類爲一秒鐘,然後消失。

我已經設法通過使用'返回false'來申請類。最後,它會阻止實際的鏈接在一起工作。

我猜一個出來並取消了其他,它只是需要一些方法來阻止它......不太清楚你如何做到這一點(對不起 - 新的jQuery)

在此先感謝任何人誰可以將我的問題排序:)

回答

1

對於此示例,瀏覽器重新加載index.php或contact.php,因此您可能需要將類邏輯放在服務器上。

您的課程正在消失,因爲頁面正在重新加載,並且此新頁面不知道觸發更改的舊頁面事件。

在JavaScript中單獨解決這個問題,你要麼需要:

  • 上的click事件上放置一個Cookie,然後讀出來的頁面加載重新申請新的頁面上的課,或
  • 負載每一頁的內容異步

不過,既然你現在有contact.php和index.php文件作爲兩個獨立的頁面,它可能是更容易只是硬編碼類到每個標記頁。

+0

謝謝@PassKit,我不確定我是否理解,但是...我使用的WAMP通常適用於這些類型的東西嗎? – LT86

+0

這不是一個WAMP或堆棧問題。假設您在index.php上,然後單擊「聯繫人」。 Javascript事件觸發器,類的變化,但在同一時間,一個請求被髮送到服務器來獲取contact.php。當contact.php加載時,它與index.php無關,因爲它不知道contact.php已被點擊。 – PassKit

相關問題