2011-03-23 94 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而不是應用「這個」聲明。然後改變班級。

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