使用Mootools对表行进行排序

时间:2015-02-24 14:19:11

标签: javascript html-table mootools

我正在尝试使用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。非常感谢。

1 个答案:

答案 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