2015-04-02 41 views
1

我的导航栏突出显示了访问者所在的页面部分,并通过将.active-nav添加到指向该页面部分的ANY href进行滚动时发生更改。我有一个指向#foo的图像精灵,但我不想将.active-nav添加到该标记。我没有运气实现:不选择。我担心我在这方面花了太多时间,并且看不到明显的答案。如果存在特定类别,请勿添加班级

如果特定的类(.bar)已经存在,我想让下面的代码忽略href标记。请指教。

if (windowpos > $('#foo').offset().top) { 
$('nav li a').removeClass('active-nav'); 
$('a[href$="#foo"]').addClass('active-nav'); 
} 
+0

你确定这不是假设是''一[HREF = “#富” ]''? – 2015-04-02 21:03:03

+0

'$('nav li a')。not(“[href =#foo]”)'不起作用? – 2015-04-02 21:05:56

+0

对不起,我的操作没有明确表示我的代码示例不包含我尝试解决问题。我所有的尝试都失败了。 – LyleCrumbstorm 2015-04-02 21:07:34

回答

4

可以使用not()功能:

$('a[href$="#foo"]').not('.bar').addClass('active-nav'); 
+0

正是我在找的东西。谢谢! – LyleCrumbstorm 2015-04-02 21:13:35

+0

没问题,很高兴帮助:) – BenM 2015-04-02 21:15:00

0

这个怎么样!

if($('a[href$="#foo"]').hasClass("bar")){ 
    //do stuff 
} else { 
    $('a[href$="#foo"]').addClass('active-nav'); 
} 
+1

这也是非常有帮助的。 – LyleCrumbstorm 2015-04-02 21:19:58

相关问题