jQuery live函数和add / remove类

时间:2013-02-13 12:51:17

标签: javascript jquery web jquery-1.5 client-side-scripting

我正在使用jquery 1.5,我遇到了添加和删除类函数的问题。以下是我的代码。

我正在创建一个具有普通,悬停和活动状态的导航。我想要添加和删除类的活动状态。

  $(".class").hover(function(){
          $(this).css("background-color", "#666).css("color", "yellow");
    ), function(){ 
         $(this).css("background-img", url(image).css("color","#fff");
    ).live('click', function(){
           if($("ul.me li").hasClass("current")){
             $("ul.me li").removeClass("current");
                $(this).addClass("current");
             }
        });


<ul class="me">
   <li class="current"> item1 </li>
   <li> item1 </li>
   <li> item1 </li>
</ul>

我是否正确绑定了它?

4 个答案:

答案 0 :(得分:0)

您可能需要使用$("ul.me li").removeClass("current")代替$("ul#me li").removeClass("current")

$("selector").live('click', function(){
   if($("ul.me li").hasClass("current")){
     $("ul.me li").removeClass("current");
        $(this).addClass("current");
     }
});

答案 1 :(得分:0)

你缺少选择器: -

$("ul.me li").live('click', function(){
   if($("ul.me li").hasClass("current")){
     $("ul#me li").removeClass("current");
        $(this).addClass("current");
     }
});

答案 2 :(得分:0)

您的脚本中的内容过于复杂。您需要阅读.css的文档。您无法通过$(".class")引用元素。如果要引用元素类型,请仅使用不包含.# $("ul")的名称$(".me")。如果您想引用类,请使用$("#idName")和{{1}}作为ID。单个css命令可以更改css值数组。正如我之前所说,请浏览css文档。 jQuery 1.6和jsfiddle一样接近。这是一个小提琴链接。请参阅脚本并根据您的要求修改css值。

Fiddle

注意:如果要在li中添加一个类并在悬停时删除,请在css中而不是在js中为类添加样式。它更便宜。

答案 3 :(得分:-1)

只是.live没有意义。你需要将.live设置为jquery对象,如$('selector')