$(".edit").click(function() {
$(this).removeClass("edit").addClass("save");
});
$(".save").click(function() {
// do form post
$(this).removeClass("save").addClass("edit");
});
<span class="edit"></span>
当我点击它时,样式确实会发生变化。我检查了FireFinder for Firebug,确实我看到了“保存”类但是当它被点击时,似乎我没有触发第二个功能,而是第一个功能。为什么?我该如何解决这个问题?
答案 0 :(得分:6)
您必须添加LIVE事件 - http://api.jquery.com/live/
$(".edit").live('click', function() {
$(this).removeClass("edit").addClass("save");
});
$(".save").live('click', function() {
// do form post
$(this).removeClass("save").addClass("edit");
});
答案 1 :(得分:1)
你必须使用我认为的实时功能。首次附加单击处理程序时,它与任何元素都不匹配:
答案 2 :(得分:0)
试试这个:
$(".edit, .save").click(function() {
if($(this).hasClass("edit") {
$(this).removeClass("edit").addClass("save");
} else {
$(this).removeClass("save").addClass("edit");
}
});
答案 3 :(得分:0)
为元素分配id而不是应用“this”语句。然后改变班级。
我完成了一些完全相同的工作。