2011-03-23 100 views
1

好的,标题可能会很混乱。我会尽力解释。我有一个元素,即点击呼吁与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进行了检查,事实上我看到“保存”类,但是当它被点击时,它似乎没有触发第二个功能,但仍然是第一个功能。为什么?我该如何解决这个问题?

回答

6

您必须添加一个现场活动 - 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"); 
}); 

+0

upvoted这一个,因为它有链接,很好的接触。 – Jage 2011-03-23 21:05:15

+0

没有比这个解决方案更清洁。 – jimyshock 2011-03-23 21:13:33

0

试试这个:

$(".edit, .save").click(function() { 
    if($(this).hasClass("edit") { 
     $(this).removeClass("edit").addClass("save"); 
    } else { 
     $(this).removeClass("save").addClass("edit"); 
    } 

}); 
0

为元素指定一个id而不是应用“这个”声明。然后改变班级。

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