通过单击导航菜单外的任何链接将活动菜单设置为当前页面

时间:2014-10-01 03:13:27

标签: jquery

以下代码的功能是在当前页面上为已点击的链接添加类,并且它们都正常工作。

$("li a").filter(function(){ return this.href == location.href.replace(/#.*/, ""); }).parents('nav ul li').addClass("selected");

var loc = window.location.href;
$("a").each(function() {
  if(this.href == loc) {
     $(this).parents('nav ul li').addClass('selected');
  }
});

但我的问题是你只能在nav中的链接中添加类。单击div之外的任何链接不会添加任何类。请查看此网址和click link outside nav1 or 2.

  1. 你建议我使用哪一个?
  2. 当我点击导航区域外的任何链接时,如何使用jquery将默认类设置为第一个li(视频)?
  3. 我的目标是将班级添加到父李,并选择其子李。

    请帮我解决这个问题。谢谢!

1 个答案:

答案 0 :(得分:0)

它不会添加一个类,因为你试图将导航项href与它不匹配的url匹配。

您可以随时添加第二部分以确保选择了某些内容

var loc = window.location.href;
$("nav a").each(function() {
  if(this.href == loc) {
   $(this).parents('li').addClass('selected');
  }
});

$("nav").each( function(){
    var $nav = $(this); 
    if ($nav.find('li.selected').length == 0 ){
         $nav.first('.li').addClass('selected');
    }
})