0

除了每个导航项目处于活动状态时的不同颜色外,我还需要为每个页面/专辑设置我的站点标题(徽标背景颜色)另一种颜色。

当导航内的链接处于活动状态时,.k-nav-current会自动附加。

所以我试过这个:

if ($("#main li:nth-child(2)").hasClass('.k-nav-current')) {
    $("#site-title").addClass("babycurrent");
} else {

};


.babycurrent{
background: rgb(35,235,0);
}

或者#main li:nth-child()我尝试过:
#main a#unique_nav_itemid
a#unique_nav_itemid

但是这些解决方案都不起作用。

4

1 回答 1

0

您可以使用一种方法来测试该元素是否存在于文档中:

if($('.k-nav-current').length) {
    $("#site-title").addClass("babycurrent");
}

当然,如果 length 是0,它被认为是“假的”。任何其他正数都是“真实的”。

但是,要获得任何进一步的帮助,我们将需要查看实际的标记。

编辑:

对于您当前的设置,您正在尝试使用#main li:nth-child(2)并检查它的类。该类实际上应用于锚点。你需要使用#main li:nth-child(2) a

if ($("#main li:nth-child(2) a").hasClass('k-nav-current')) {
    $("#site-title").addClass("babycurrent");
}

虽然使用这样的东西可能会更好(考虑到 id 是唯一的):

if ($("#baby").hasClass('k-nav-current')) {
    $("#site-title").addClass("babycurrent");
}

最后,如果你真的想要它是动态的,你可以这样做:

var current = $("a.k-nav-current")[0].id.replace('#','');
$("#site-title").addClass(current + "current");

编辑:

$( document ).ready(function() {
  if ($("#baby").hasClass('k-nav-current')) {
    $("#site-title").addClass("babycurrent");
  }
});

// or you can do this (commented out) /*

$( document ).ready(function() {
  var current = $("a.k-nav-current")[0].id.replace('#','');
  $("#site-title").addClass(current + "current");
});

*/
于 2014-03-18T20:04:16.617 回答