2016-10-22 81 views
0

我想在for循環中動態創建表可拖動和可拖動。它不工作。對於靜態表,它工作正常。小提琴herejquery droppable和draggable無法在for循環中動態創建表

的Javascript:

$(document).ready(function() { 
    $("#button1").click(function() { 
     for (var j = 1; j < 4; j++) { 
      var table = document.createElement("table"); 
      var tbody = document.createElement("tbody"); 
      for (var i = 1; i < 5; i++) { 
       var tr = document.createElement("tr"); 
       var td1 = document.createElement("td"); 
       var td2 = document.createElement("td"); 

       var text1 = document.createTextNode("Text" + j + "-" + 1 + i); 
       var text2 = document.createTextNode("Text" + j + "-" + 2 + i); 

       td1.appendChild(text1); 
       td2.appendChild(text2); 
       tr.appendChild(td1); 

       tr.appendChild(td2); 

       tbody.appendChild(tr); 
       table.appendChild(tbody); 

       //var id = "a" + j + "." + i; 
       //tr.attr({"id",id}).appendTo(table); 
       // tr.setAttribute("id", id); 
      } 

      document.getElementById("tb").appendChild(table); 
      table.setAttribute("id", "t" + j); 
      tbody.setAttribute("id", "tb" + j); 
      $("#" + "tb" + j).sortable({ 
       items: "> tr:not(:first)", 
       appendTo: "parent", 
       helper: "clone" 
      }).disableSelection(); 
     } 
    }); 
}); 

HTML:

<button id="button1"> 
    button1 
</button> 
<div id="tb"> 
</div> 
+1

請提供有關您的問題的進一步信息。 「它不工作」根本不是一個有效的問題描述。 –

+0

添加$(#id).sortable()代碼後,表格甚至沒有被創建。它假設每個創建3行,每行4行。表格行假定爲可拖動和可拖放的。但他們不是 – NZLearner

回答

0

的jQuery UI庫添加到項目中的jQuery後:

<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

之後,你的代碼工作正常。這是一個JS Bin

+0

非常感謝你,阿爾曼。它像一個魅力。我對編程相對陌生。我把代碼放在中,它沒有用。但如果我把它放在身體裏,它就行了。你能告訴我爲什麼這是嗎? – NZLearner

+0

只要將** jquery-ui.js **放在** jquery.js **之後並將代碼包裝在jQuery的'.ready()'方法中,那麼它是否應該放在'身體「或」頭部「。看看[這個例子](http://jsbin.com/zahozedigo/1/edit?html,js,output)。順便說一下,你的jQuery版本(如果你的小提琴是準確的)'.ready()'的推薦用法是......。像'$(function(){你的代碼在這裏...});'。檢查[文檔在這裏](http://api.jquery.com/ready/#entry-longdesc)出於原因 –

+0

再次感謝阿爾曼。有趣的是,在你上面的例子中,圖書館被放在腦海裏,有時候它不起作用。如果你點擊按鈕,它只會給第一個表格不是全部3個表格。但有時它可以正常工作。它是否也會從你的結尾發生。順便說一句,感謝.ready()信息。 – NZLearner