<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
    <link href="https://nightly.datatables.net/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
    <script src="https://nightly.datatables.net/js/jquery.dataTables.js"></script>
<link href="https://nightly.datatables.net/rowreorder/css/rowReorder.dataTables.css?_=9e78fb9f95a9b67ea132905fd3877eea.css" rel="stylesheet" type="text/css" />
<script src="https://nightly.datatables.net/rowreorder/js/dataTables.rowReorder.js?_=9e78fb9f95a9b67ea132905fd3877eea"></script>
<script src="https://cdn.datatables.net/plug-ins/1.10.20/sorting/absolute.js"></script>
    <meta charset=utf-8 />
    <title>DataTables - JS Bin</title>
  </head>
  <body>
    <div class="container">
<table id="example" class="display" style="width:100%">
        <thead>
            <tr>
                <th>Seq.</th>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>2</td>
                <td>Tiger Nixon</td>
                <td>System Architect</td>
                <td>Edinburgh</td>
                <td>2011/04/25</td>
                <td>$320,800</td>
            </tr>
            <tr>
                <td>-1</td>
                <td>Garrett Winters</td>
                <td>Accountant</td>
                <td>Tokyo</td>
                <td>2011/07/25</td>
                <td>$170,750</td>
            </tr>
            <tr>
                <td>6</td>
                <td>Ashton Cox</td>
                <td>Junior Technical Author</td>
                <td>San Francisco</td>
                <td>2009/01/12</td>
                <td>$86,000</td>
            </tr>
            <tr>
                <td>41</td>
                <td>Cedric Kelly</td>
                <td>Senior Javascript Developer</td>
                <td>Edinburgh</td>
                <td>2012/03/29</td>
                <td>$433,060</td>
            </tr>
            <tr>
                <td>55</td>
                <td>Airi Satou</td>
                <td>Accountant</td>
                <td>Tokyo</td>
                <td>2008/11/28</td>
                <td>$162,700</td>
            </tr>
            <tr>
                <td>21</td>
                <td>Brielle Williamson</td>
                <td>Integration Specialist</td>
                <td>New York</td>
                <td>2012/12/02</td>
                <td>$372,000</td>
            </tr>
            <tr>
                <td>46</td>
                <td>Herrod Chandler</td>
                <td>Sales Assistant</td>
                <td>San Francisco</td>
                <td>2012/08/06</td>
                <td>$137,500</td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <th>Seq.</th>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </tfoot>
    </table>
   </div>
  </body>
</html>
 
body {
  font: 90%/1.45em "Helvetica Neue", HelveticaNeue, Verdana, Arial, Helvetica, sans-serif;
  margin: 0;
  padding: 0;
  color: #333;
  background-color: #fff;
}
 
$(document).ready( function () {
  
var fixReorder = {
  swap: false,
  bottomRow: null,
  droppedIndex: null,
  droppedRow: null
};
  
var reorderType = $.fn.dataTable.absoluteOrderNumber( [
    { value: -1, position: 'bottom' }
] );
 
  var table = $('#example').DataTable({
    rowReorder: {
        selector: '.allow-reorder',
        //update: false
    },
    columnDefs: [
        {
            targets: 0,
            type: reorderType,
            visible:false
        },
        {
          targets: 1,
          className: 'allow-reorder',
          createdCell: function (td, cellData, rowData, row, col) {
            //console.log(cellData)
            if ( cellData === 'Garrett Winters' ) {
               $(td).removeClass('allow-reorder');
            }
          }
        }
      ]
  });
  
table.on( 'row-reordered', function ( e, diff, edit ) {
    console.log(diff);
    fixReorder = {
      swap: false,
      bottomRow: null,
      droppedIndex: null,
      droppedRow: null
    };
  
    // Look for bottom row being reordered
    for (i=0; i<diff.length; i++) {
      d = diff[i];
      
      // Save row and index info if bottom row is reordered
      if (d.oldData == -1) {
        fixReorder.bottomRow = d.node;
        fixReorder.swap = true;
        fixReorder.droppedIndex = d.newData;
        break;
      }
    }
  
    // Find row moved to bottom
    if (fixReorder.swap) {
      for (i=0; i<diff.length; i++) {
        d = diff[i];
        if (d.newData == -1) {
          fixReorder.droppedRow = d.node;
          break;
        }
      }      
      // Fix the order after table draws
      table
        .one( 'draw', function () {
          if (fixReorder.swap) {
            
            // Set the bottom row back to -1
            var row = table.row(fixReorder.bottomRow)
            data = row.data();
            data[0] = '-1'
            row.data(data)
            
            // Set the moved row to the opposite index
            row = table.row(fixReorder.droppedRow)
            data = row.data();
            data[0] = fixReorder.droppedIndex;
            row.data(data).draw()
          }
      } );    
    
    }
} );
  
  
  
} );
5 errors
Line 76: Missing semicolon.
Line 78: Missing semicolon.
Line 79: Missing semicolon.
Line 82: Missing semicolon.
Line 85: Missing semicolon.
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers