jquery
  • clone
  • 2012-07-23 72 views 0 likes 
    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 - 這可能是原因嗎?

    回答

    1

    John Resig已回答有關使用jQuery克隆對象的question。它可能會幫助你

    +0

    哈!謝謝,這樣做的工作! :-) – Sven 2012-07-23 14:20:34

    相關問題