addClass不起作用

时间:2011-04-25 08:16:59

标签: jquery

我有以下代码

$("#v-nav-exp-liv li a").click(function(){

 //code for action related #v-nav-exp-liv li a      

 //code for action related .content-nav li
 $(".content-nav li").removeClass("tab");
 $(".content-nav li.zik-liv").addClass("tab");          

  return false;
});

html如下

<ul class="content-nav">
   <li class="zik-liv"><a href="index.php?p=explore">Zikrs</a></li>
   <li class="ppl-liv"><a href="index.php?p=explore&t=ppl">People</a></li>
</ul>

<ul class="part v-nav" id="v-nav-exp-liv">
   <li><a href="#" type="zikr_explore" sort_by="all">All</a></li>       
   <li><a href="#" type="zikr_explore" sort_by="most_shared">Most Shared</a></li>
</ul>

与“#v-nav-exp-liv li a”相关的代码非常有用,我不知道为什么addclass不起作用....

4 个答案:

答案 0 :(得分:2)

我会说你的选择器错了。

顺便说一句,你可以让那些代码变得更加简洁......

$(".content-nav li.zik-liv").addClass("tab").siblings().removeClass("tab")

假设所选的li都是兄弟姐妹。

答案 1 :(得分:0)

确保$(".content-nav li.zik-liv")有效

答案 2 :(得分:0)

如果 addClass无法正常工作,则会发生以下两种情况之一:

  1. 你的选择器(".content-nav li.zik-liv")不好,或者
  2. 您希望通过不动态更新的工具看到更改(尝试使用CSS规则查看)
  3. 如果它不仅仅是addClass,那么在调用click之前,addClass处理程序中的代码可能会出现一些Javascript错误,导致addClass不成为{{1}}完全被召唤。

答案 3 :(得分:0)

您的代码和addClass工作正常:see example - 示例是代码的直接粘贴,并添加了视觉突出显示以显示.tab类激活

对于第二个列表中的每个链接,它只针对第一个列表中的第一个链接,它永远不会改变,也许你正在尝试做一些与此不同的事情?