2009-11-23 64 views
0

後存儲的JQuery保持addClass我是相當新的jQuery和我基於快魚腳本工作在菜單上。 我在通過鏈接導航時遇到麻煩,無法在當前點擊的項目集上保留addClass。頁面重載

我的代碼:

JS

<script type="text/javascript"> 
jQuery.noConflict(); 
jQuery(document).ready(function(){ 

jQuery("ul.sf-menu").superfish({pathClass: 'corrente'});    

jQuery('#sf-menu li a').click(function() { 
     jQuery("#sf-menu li").removeClass('corrente'); 
     jQuery(this).parents().filter("li").addClass('corrente'); 
     jQuery("ul.sf-menu").superfish({pathClass: 'corrente' }); 
}); 
}); 
</script> 

HTML

<ul id="sf-menu" class="sf-menu sf-navbar"> 
    <li><a href="#">Home</a></li> 
    <li><a href="#">Band</a></li> 
    <li><a href="#">Solo Projects</a> 
     <ul> 
     <li><a href="#">Tim</a></li> 
     <li><a href="#">Tom</a></li> 
     <li><a href="#">John</a></li> 
     </ul> 
    </li> 
    <li><a href="#">Media Appearances</a></li> 
    <li><a href="#">Tour</a> 
     <ul> 
    <li><a href="#">The Reunion Tour</a> 
     <ul> 
     <li><a href="#">North American Leg</a></li> 
    </ul> 
     </li> 
     </ul> 
    </li> 
    <li><a href="#">Gallery</a></li> 
</ul> 

上面的HTML工作正常,類 「科倫特」 設置正確,但是當我改變html插入實際鏈接,該類設置正常,但在目標頁面加載時會丟失。

能否請您給我如何添加存儲類,並將它傳遞直通目標頁面什麼建議嗎?

預先感謝您

回答

1

整個Javascript環境會在您進入新頁面時重置,因此您無法在頁面之間保存javascript所做的更改。

可能的方法來解決這個問題:

  1. 在一個單獨的窗口中的iframe或 打開新的一頁。外 頁面(一個iframe)或原始 頁(爲一個單獨的窗口)不 重裝,在它 這樣的JavaScript的變化將不會丟失。
  2. 添加某種查詢字符串的URL,當你 傳遞到新的頁面,然後 解釋在 新的頁面(在JavaScript中),其查詢字符串,使 任何改變你又發。
  3. 將數據放入cookie中,該數據將允許您將更改應用於新頁面。
0

你可以

  • 店在cookie
  • 添加類,從AJAX請求到服務器,以持續的服務器(可能是一個數據源的狀態,例如數據庫)
1

如果仍然有幫助,我使用名爲jquery.cookie的jQuery插件。

在我的情況,我與WordPress和測驗插件工作,之後每一步的頁面重新加載和我失去了我的修改。

所以,當我安裝的插件jquery.cookie我能夠保持jQuery的修改,比如增加類或刪除它們。