使用更改样式的jQuery提交表单

时间:2011-03-23 21:02:50

标签: jquery

好的,标题可能很混乱。我会试着解释一下。我有一个元素,点击它时用jQuery调用一个函数,元素的样式从一个变为另一个:

    $(".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,确实我看到了“保存”类但是当它被点击时,似乎我没有触发第二个功能,而是第一个功能。为什么?我该如何解决这个问题?

4 个答案:

答案 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)

你必须使用我认为的实时功能。首次附加单击处理程序时,它与任何元素都不匹配:

http://api.jquery.com/live/

答案 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”语句。然后改变班级。

我完成了一些完全相同的工作。