【问题标题】:Change the color or parent of an li using jquery even after postback即使在回发后也使用 jquery 更改 li 的颜色或父级
【发布时间】:2012-05-31 06:18:14
【问题描述】:

我有一棵结构如下的树:

Home
Products
    Product1
    Product2
Item1
Item2
Item3

我有一个要求选择产品1,产品的颜色应该是红色的。为此,我使用了以下 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,颜色就会改变,但一旦页面回发,颜色就会消失。有人可以指导我如何解决这个问题。

问候, 斯瓦蒂耆那教

【问题讨论】:

  • 我编辑了你的问题,所以源代码更明显。
  • 找到了解决方案:我没有调用 click 函数,而是执行了以下操作:

标签: jquery css postback parent


【解决方案1】:

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

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

【讨论】:

  • @user1427623 没问题。请将问题标记为已回答:)
【解决方案2】:

您需要使用 php 动态设置类或设置页面 id/类,以便页面知道它在哪里。例如如果您在产品页面上,正文标签将有一个 id 或产品。然后在您的 CSS 中,您可以将产品导航元素设置为红色

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

您的 html 将在产品页面上显示如下:

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

【讨论】:

  • Matpol,这实际上是一个Sharepoint导航树,每个li元素的css必须相同,所以我不能使用上面的解决方案。
【解决方案3】:

好吧,您可能可以准备好文档上的页面 url 并执行一些 if 条件,或者您可以在加载更改颜色的页面上添加一个静态 jscript,再次在页面准备好。顺便说一句,要获取 url,只需编写 var url = window.location.href

【讨论】:

    猜你喜欢
    • 2017-07-18
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    相关资源
    最近更新 更多