即使在回发后也使用jquery更改li的颜色或父级

时间:2012-05-31 06:18:15

标签: jquery css postback parent

我有一棵树,结构如下:

Home
Products
    Product1
    Product2
Item1
Item2
Item3

我要求在选择Products1时,产品的颜色应为红色。为此,我使用了下面的jquery:

<script type="text/javascript">
$(document).ready(function () {
     $(".leftnav li ul li").click(function(){
       var thisAnchor = $(this);
       var parent = $(thisAnchor).parent().parent();
       $(parent).children("a").css('color','red');
    }); 
});
</script>

这里leftnav是包含树结构的div上使用的类。单击 Product1 后颜色会立即更改,但一旦页面回发就会消失。有人可以指导我如何解决这个问题。

此致 Swati Jain

3 个答案:

答案 0 :(得分:1)

如果我理解正确,你需要在回发中保持状态。要么你可以

  1. 将当前选择状态回发到服务器并在生成的html上为回发设置颜色
  2. 将当前选择状态存储在cookie中(查看jquery cookie插件)并修改document.ready上的颜色

答案 1 :(得分:0)

您需要使用php动态设置类或设置页面ID /类,以便页面知道它的位置。例如如果您在产品页面上,正文标记将具有ID或产品。然后在你的CSS中你可以将产品nav元素设置为红色

body#products .leftnav li ul li.on{
 color: red;
}

你的html会出现在这样的产品页面上:

<body id="products">
...
<ul>
  <li>
    <ul>
      <li class="on">
         Products
      </li>
    </ul>
  </li>
</ul>

答案 2 :(得分:0)

嗯,你可以准备好在docoment上准备好的页面网址,并在条件允许的情况下做一些,或者你可以在页面上添加静态jscript,加载更改颜色,再次在页面准备就绪。顺便抓住网址只需写var url = window.location.href