2012-09-24 33 views
0

我真的很喜歡jquery,但我嘗試了幾乎比我最好解決它通過閱讀由有價值的用戶Stackoverflow創建的舊帖子。 我的問題是我嘗試添加類onclick事件。它的工作,只有當我設置超鏈接到空白(#)<a href="#">test</a>,但如果我設置爲超鏈接狀態<a href="product.php"然後它刪除並添加類一段時間,當前頁面打開後,它會自動刪除活動類,並設置它如前所述。 :( 我的js代碼..使用空白鏈接添加和刪除類的作品,但沒有與頁面鏈接

$('ul#menu li a').click(function() { 
    $('ul#menu li a').removeClass('active'); 
    $(this).toggleClass('active'); 
}); 
+0

爲什麼第一removeclass比toggleclass? –

+1

您需要在特定鏈接上手動(靜態)在重定向頁面中添加'active'類,或者通過使用url發送查詢字符串並將它們置於重定向頁面中(動態) –

+0

我想刪除默認設置爲主頁的活動類並刪除它時,我點擊鏈接,並添加活動課,我點擊一個。 @註冊用戶 – Santosh

回答

3

您example.com/product.php被加載後,你所面對的問題是活躍類不會保留在相應的錨標記中,因爲JavaScript在加載時不會將狀態舊頁面帶到新頁面。你可以用兩種方法做到這一點

  1. 你可以禁用頁面加載並保持在同一頁面。

    $('ul#menu li a').click(function(e) { 
        e.preventDefault();//this will stop the current event which is your page load 
        $('ul#menu li a.active').removeClass('active');//this will remove the active class from only a tag having active as class 
        $(this).toggleClass('active'); 
    }); 
    
  2. 頁面加載後,找出你是哪個頁面,並設置活躍類各自的標籤

    (function($){ 
        //highlight the current tab 
        var l = window.location.pathname, 
        str = l.slice(l.lastIndexOf('/')+1,l.length); 
    
        $('ul#menu li a.active').removeClass('active');//remove active from home page link 
        $('#menu').find('a[href="'+str+'"]').addClass('active'); 
    })(jQuery); 
    
+0

omg。 Thankyou非常.. :)第二個很好:)。非常感謝。 – Santosh

0

嘗試單獨使用以下,並取出$('ul#menu li a').removeClass('active');

$('ul#menu li a').click(function(){ 
    $(this).toggleClass('active'); 
}); 
+0

我試過你的代碼。並添加類似\t $('ul#menu li a')。click(function(){ alert(「hell」); $(this).toggleClass('active'); }); 我甚至加了alert(「hell」);檢查代碼是否正常工作..如果警報是在功能裏面,它不會彈出消息,但如果警報是在功能外彈出..我錯過了什麼:(請告訴 – Santosh

+0

你可以發佈在你原來的HTML代碼? –

0

你應該只使用$(this).toggle('active'),你並不需要前面的語句

+0

感謝您的回覆。但我不是爲什麼我的代碼不工作。 – Santosh

2

這適用於我

var url = window.location.href; 
    url = url.substr(url.lastIndexOf("/") + 1); 
    $("#menu").find("a[href='" + url + "']").addClass("active"); 

只是我將腳本排除在每個頁面上,它將添加active類以反映當前位置。無需切換任何東西。

猜測爲什麼你的代碼不起作用:您點擊一個鏈接和一切可能的工作,除了鏈接指向不同的網頁,你的jQuery函數被「重裝」,並沒有什麼不再點擊。如果你想實現一個頁面的網站看到,例如:

+0

很多人多謝你的寶貴意見。我想我的英文很差。希望你不要覺得我的帖子很難理解。我衷心感謝:) – Santosh