2012-03-12 111 views
0

我有我的根nav.php,我称之为使用addClass与removeClass在nav.php

这样每个页面中,我可以在一个文件编辑和更改将在整个网站的效果。我正尝试在鼠标单击时删除类,并在新点击菜单项上添加类。下面是代码,我不能得到它的工作。

<script> 
    $('li').click(function(){ 
     $('li.active').removeClass('active'); 
      $(this).addClass('active'); 
    }); 
</script> 

这里是URL

http://newriverreleasing.com

感谢

+1

在链接你的源代码提供的任何地方都没有你的脚本。 – 2012-03-13 00:00:18

+0

其实你的代码对我来说工作正常 – DG3 2012-03-13 00:08:36

+0

即使我添加$(this).siblings()。removeClass('active'); – 2012-03-13 00:14:57

回答

0

有几个问题与此...

查询选择$( '礼')一定会匹配页面上有多个元素,因此您需要遍历所有元素并添加click()函数,如下所示:

$('li').each(function() { 
    $(this).click(function(thisLi) { 
    // assuming there is only one li.active... 
    $('li.active').removeClass('active'); 
    thisLi.addClass('active'); 
    }); 
}); 

此外,您还需要加载该到它,将其置于一个$(文件)。就绪()函数,或类似的相匹配的元素:

$(document).ready(function() { 
    $('li').each(function() { 
     $(this).click(function(thisLi) { 
     // assuming there is only one li.active... 
     $('li.active').removeClass('active'); 
     thisLi.addClass('active'); 
     }); 
    }); 
}); 
+1

即使有多个活动LI'$('li.active')。removeClass('active')'将从其中移除活动类。选择器会将它们全部匹配,并且它们都将removeClass应用于它们。 – JohnColvin 2012-03-13 00:09:54

+0

哦,呵呵。这也是为了$('li')。click()?我想我以前需要迭代器才能添加触发器。 – kclair 2012-03-13 00:10:59

+0

是的。去试试看,并清理一些你的旧JS! – JohnColvin 2012-03-13 00:12:59