我正在尝试使用Mootools在表上实现拖放可排序的行。这个问题我今天早上一直在敲打我的脑袋,并且可以找出它的解决方案,这是HTML表格:
<table class="table table-bordered">
<tbody>
<tr class="item">
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr class="item">
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr class="item">
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
这是Javascipt:
window.addEvent('domready', function() {
/* create sortables */
var d = $$('tr');
var sb = new Sortables(d, {
/* set options */
clone:true,
revert: true,
/* initialization stuff here */
initialize: function() {
},
/* once an item is selected */
onStart: function(el) {
el.setStyle('background','#add8e6');
},
/* when a drag is complete */
onComplete: function(el) {
el.setStyle('background','#ddd');
//build a string of the order
}
});
});
这是一个jsfiddle。非常感谢。
答案 0 :(得分:3)
根据我的理解,这是您遇到的问题:
您希望将行排序?而您的小提琴示例中的所有单元格都可单独排序。
您的问题在这里:
var d = $$('tr');
var sb = new Sortables(d);
您已将所有tr作为可排序列表传递。这意味着所有td都是可排序的。
你需要传递:
var d = $('tbody');
var sb = new Sortables(d);
Mootools Docs声明:
参数: [1] list - (mixed)required,将成为可排序的列表。
在这种情况下,列表是其子项将变为可排序的任何元素(或元素数组)。
见这里:Updated Fiddle