2009-11-23 45 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的修改,比如增加类或删除它们。