【问题标题】:changing css to a path of a menu将 css 更改为菜单的路径
【发布时间】:2011-09-21 06:06:02
【问题描述】:

我正在使用 jquery、superfish 来创建动态菜单。 但是,我在向所选路径添加粗体类时遇到了麻烦。 我能够选择正确的子菜单并提取正确的父母。但是当我想将粗体 css 属性应用于元素和父级时。每个项目都变成粗体。 什么时候,我清楚地看到一些子元素没有粗体 css 类。

$n = $("li[id=li_"+$num+"]").parents().filter("li").not('ul menu').addClass('bold');

【问题讨论】:

  • 你的加价是多少?此外,'ul menu' 选择器将在 <ul> 元素中查找 <menu> 元素。而且没有这样的menu 元素。你的意思是'ul .menu'(或'ul.menu')?
  • 大卫,.not('ul menu') 我想你刚刚发现了他的错误。
  • @airnet: 或者'ul, menu'?
  • 好的,就是这样。我明白发生了什么事。但不确定如何解决。基本上,我有
    • 1
    • 2
      • 3
      • 4
    • 所以,如果我选择节点 4。我将它的 css 设置为粗体,如果我对父级执行此操作。它延续到节点 3。
  • 哇,好的,感谢下面的回答

标签: jquery css superfish


【解决方案1】:

孩子们很可能从他们的粗体父母那里继承了粗体。例如,如果您使用嵌套列表,则父 li 上的“粗体”类,再加上该类上的 font-weight:bold; 样式,将使 li 中的所有内容变为粗体,包括没有粗体类的子项。您可能需要类似于以下内容的 css:

li.bold li {
    font-weight:normal;
}
li.bold {
    font-weight:bold !important;
}

另外,“粗体”对于这个类来说是个坏名字——你想描述语义,而不是显示。我会使用“已选择”、“突出显示”或“活动”之类的内容。

Example.

【讨论】:

  • 非常感谢..这是从父母那里继承来的。但是,是的,我的选择器命名不同。只是想解释一下场景
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
  • 2012-01-31
  • 2021-10-08
  • 2019-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多