0
我有一個網站在這裏用戶可以點擊一些div。然後,我使用此代碼向其添加「X」:jQuery/JavaScript:動態添加內容的克隆
function addEx(elem, insertClass) {
var element = $(elem);
var newInsertClass = insertClass.replace('.', '');
var insert = "<span class='" + newInsertClass + "'> X </span>";
element.click(function(){
var $this = $(this);
if($this.text().indexOf("X") >= 0) {
var id = $this.attr("id");
$("#" + id + " " + insertClass).remove();
} else {
$this.append(insert);
}
})
}
正如您所看到的,如果「X」已存在,我將其刪除。如果它不在那裏,我添加它。這工作正常。
用戶還可以點擊「獲得結果」按鈕。然後將用戶點擊的div與正確的答案進行比較。據此,我向正確點擊,過多或忘記點擊的div添加類。這也適用,但內容(「X」)會丟失。所以我可以看到我爲這些類提供的CSS,但是在用克隆替換原始文件後,div中的「X」缺失。添加類我使用此代碼:
var test = $(".test");
var clone = test.clone(true,true);
function correction() {
clone.children().filter(function() {
return $.inArray('#' + this.id, forgotten) != -1;
}).addClass("forgotten").end().filter(function() {
return $.inArray('#' + this.id, toomuch) != -1;
}).addClass("toomuch").end().filter(function() {
return $.inArray('#' + this.id, correct) != -1;
}).addClass("right");
test.replaceWith(clone);
}
我克隆這裏的元素,然後在克隆上添加適當的類,並用克隆替換原來的。
所以我的問題是:我怎樣才能防止這種內容的丟失?我想這是因爲「X」是動態添加的?或者我也有更多的一個元素.test
- 這可能是原因嗎?
哈!謝謝,這樣做的工作! :-) – Sven 2012-07-23 14:20:34