2014-07-17 93 views
-1

我有一個問題,jQuery addClass代碼添加類到我的div,但點擊類後消失。這是一個多頁面網站。添加類但點擊後刪除類

$(document).ready(function(){ 
    $(".left-menu-icon").click(function(){ 
    $(this).addClass("l-animals-a"); 
    }); 
}); 
<a href="animals.html"> 
    <div class="left-menu-icon l-animals"></div> 
</a> 
+1

看起來你正在點擊一個鏈接並且沒有觸發'event.preventDefault',所以你正在加載一個新頁面,這就是爲什麼你在那裏看不到該類的原因。 – Culyx

+0

所以你想添加一個類到當前的菜單鏈接?如果是,'preventDefault'因爲其他建議不是答案。 – undefined

+0

我知道,你知道任何解決方案,我不擅長jQuery嗎? –

回答

1

由於Culyx正確地評論說:這到底是怎麼發生的事情是,你在<a>標籤點擊實際上是重定向你到animals.html頁面。我假設這是你目前所在的頁面,所以實際發生的事情是頁面更新。

你必須阻止該網頁通過捕獲click事件中的事件進行重定向:

$(".left-menu-icon").click(function(e){ 
    e.preventDefault(); 
    $(this).addClass("l-animals-a"); 
}); 

爲了捕獲事件,我使用的event.preventDefault()功能。 MDN文檔描述此功能如下:

取消事件如果它是可取消的,而不停止進一步傳播事件。

+0

謝謝,刷新是問題,但你提供給我的這段代碼,但它不起作用。我有14個菜單按鈕,導致14個不同的頁面,有沒有什麼辦法讓我添加活動類菜單,因爲它是活躍的?活動狀態改變背景圖像。 –

+0

什麼是你的菜單元素?你沒有在你的文章中引用它。這聽起來對我來說就像是一個不同的問題...... – Lix

+0

現在是一個不同的問題,對不起。我發佈的div裏面的一個標籤是菜單的第一個按鈕,在該菜單中有14個相同的按鈕,但不同的href鏈接。當我使用你的代碼時,我無法在我的頁面之間切換,因爲點擊標籤現在不會工作。 –