添加/删除类工作但不点击新类

时间:2011-09-23 20:12:14

标签: javascript jquery css

对不好的标题措辞感到抱歉!

我有JS:

$(".add").click(function(event)
{
   cid=event.target.id; 
   alert("add class changed");
   $("#"+cid).addClass("del");
   $("#"+cid).removeClass("add"); 
});


$(".del").click(function(event)
{
   cid=event.target.id; 
   alert("del class changed");
   $("#"+cid).addClass("del");
   $("#"+cid).removeClass("add"); 
});

还有一些像这样的HTML:

<a class="add" id="1" href="#">test a</a>
<a class="add" id="2" href="#">test b</a>
<a class="add" id="3" href="#">test c</a>

当我点击其中一个“测试”时,我得到“添加类更改”警告,HTML显示它的类已更改为“del”。

然而,当我点击其中一个已更改的“测试”时,没有运行del类的函数,只需再添加一个。

因此,类正在相应地更改和显示,但是没有发生相应类的单击函数。 谁能看到我哪里出错?

修改 需要一个“LIVE”活动。 以下代码有效:

$(".add").live({
           click: function(event)
               {
                  cid=event.target.id; 
                  alert("add class changed");
                  $("#"+cid).addClass("del");
                  $("#"+cid).removeClass("add");
               }
               });

1 个答案:

答案 0 :(得分:2)

$(".add")只选择当时拥有add类的元素。这并不意味着当他们的类发生变化时,会奇怪地将click事件分配给其他元素。

但是,这可以通过使用JQuery live方法绑定事件来实现。