我試圖重新組織我的代碼,並使其更加不顯眼。jQuery點擊功能vs內聯onclick
主要是有一個執行動作的鏈接。如果你點擊鏈接,這個動作是通過ajax執行的(ajax代碼不在代碼中),文本被其他文本取代,爲用戶提供撤銷動作的能力。如果用戶單擊撤銷鏈接,則ajax將恢復先前的情況,並向用戶提供的文本執行再次顯示的操作。
我在單個html文件(下面的代碼)中提出了一個更簡單的問題版本。有兩段。如果您點擊第一段使用內聯onclick調用的鏈接,代碼將按預期工作。但是,如果你點擊第二段使用jQuery onclick函數的鏈接,撤銷鏈接不起作用,我不知道爲什麼。
任何幫助?非常感謝!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title></title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function() {
$(".add2").click(function(){
var placeId = $(this).parents(".place").attr("id");
$("#" + placeId + " .add2").remove();
$("#" + placeId + " .actions").append("<span class=\"added\">Added!</span> <a class=\"undoadd2\" href=\"#\">Undo</a>");
return false;
})
$(".undoadd2").click(function(){
var placeId = $(this).parents(".place").attr("id");
$("#" + placeId + " .actions").find("span.added, a.add2").remove();
$("#" + placeId + " .actions").append("<a class='add2' onclick='copyPlace(\"" + placeId + "\"); return false;' href='#'>Add place</a>");
return false;
})
});
function addPlace(placeId){
$("#" + placeId + " .add").remove();
$("#" + placeId + " .actions").append("<span class=\"added\">Added!</span> <a class=\"undoadd\" href=\"#\" onclick=\"undoAddPlace('" + placeId + "'); return false;\">Undo</a>");
return false;
}
function undoAddPlace(placeId){
$("#" + placeId + " .actions").find("span.added, a.undoadd").remove();
$("#" + placeId + " .actions").append("<a class='add' onclick='addPlace(\"" + placeId + "\"); return false;' href='#'>Add place</a>");
return false;
}
</script>
</head>
<body id="home">
<div class="place" id="3435910">
<p class="actions"><a href="#" onclick="addPlace('3435910'); return false;" class="add">Add place</a></p>
</div>
<div class="place" id="3435912">
<p class="actions"><a href="#" class="add2">Add place</a></p>
</div>
</body>
</html>
如果選擇是完全一樣的活纔有效。在這種情況下,我認爲選擇器對每個DOM元素都是唯一的。 – tvanfosson 2009-05-02 23:14:30