对不好的标题措辞感到抱歉!
我有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");
}
});
答案 0 :(得分:2)
$(".add")
只选择当时拥有add
类的元素。这并不意味着当他们的类发生变化时,会奇怪地将click事件分配给其他元素。
但是,这可以通过使用JQuery live方法绑定事件来实现。