拖动在jQuery DataTables RowReorder中开始和结束时的事件

时间:2015-09-08 07:36:09

标签: jquery datatables

我正在实施jQuery DataTables RowReorder扩展,并且需要在拖动正在进行时对DOM进行更改,并在完成时停止该进程。我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

  

<强>解

使用row-reorder事件检测行已重新排序的时间。

$('#example').on('row-reorder.dt', function(e, details, edit){   
   for(var i = 0; i < details.length; i++){
      console.log(
         'Node', details[i].node, 
         'moved from', details[i].oldPosition, 
         'to', details[i].newPosition
      );
   }
});

要跟踪行拖动事件,请使用未记录的事件mousedown.rowReorderousemove.rowReorder,如下所示。

$('#example').on('mousedown.rowReorder touchstart.rowReorder', 'tbody tr td:eq(0)', function(){
   var tr = $(this).closest('tr');    
   console.log('Started dragging row', tr);

   $(document).on('mousemove.rowReorder touchmove.rowReorder', function(){
      console.log('Dragging row', tr);
   });
});
  

<强>样本

请参阅this jsFiddle以获取代码和演示。