当我需要动态添加 div 块时,我有一个 Web 表单。在 div 块内有一个可排序的项目表。我正在通过在最后一个 div 上调用 clone() 来添加 div 及其子项,根据需要修复输入(代码承认,因为它与测试无关)。并将新克隆的 div 附加到最后一个 div 的父级。但是,无论我尝试什么,我都无法让新克隆的带有子表的 div 像它的前身一样可排序。
我已经设置了以下测试,显示了 jsFiddle 的问题。
对于那些看不到 jsFiddle 的人,这里有一些相关的尝试:
HTML部分:
<div>
<div class="inner">
<input name="one" value="something" />
<table>
<tbody>
<tr>
<td>First</td>
<td>
<input name="row1" value="1" />
</td>
</tr>
<tr>
<td>Second</td>
<td>
<input name="row2" value="2" />
</td>
</tr>
<tr>
<td>Third</td>
<td>
<input name="row3" value="3" />
</td>
</tr>
<tr>
<td>Fourth</td>
<td>
<input name="row4" value="4" />
</td>
</tr>
</tbody>
</table>
</div>
<br/>
</div>
<input type="button" id="button" value="Add" />
和 jQuery 部分
$(document).ready(function () {
$('div.inner table tbody').sortable({
stop: function () { /* Some code to reset the row numbers */
}
});
$('#button').click(function(event) {
var newInnerDiv = $('div.inner:last').clone(true,true);
// clean up the inputs
// Append the new Item Type to the parent of the existing one
$(newInnerDiv).appendTo($('div.inner:last').parent());
// renumber inputs
// Even if I make this re-sortable, the new table doesn't work
$(newInnerDiv).sortable();
});
});
有没有办法重新应用新克隆表的可排序性?我们正在使用 jQuery 1.7.1 和 jQuery UI 1.8.13。