File: demos/startbootstrap-sb-admin-2/bower_components/datatables-plugins/api/fnGetAdjacentTr.js

Recommend this page to a friend!
  Classes of Emmanuel Podvin   Blapy   demos/startbootstrap-sb-admin-2/bower_components/datatables-plugins/api/fnGetAdjacentTr.js   Download  
File: demos/startbootstrap-sb-admin-2/bower_components/datatables-plugins/api/fnGetAdjacentTr.js
Role: Auxiliary script
Content type: text/plain
Description: Auxiliary script
Class: Blapy
jQuery plugin to load linked pages using AJAX
Author: By
Last change: Update of demos/startbootstrap-sb-admin-2/bower_components/datatables-plugins/api/fnGetAdjacentTr.js
Date: 3 years ago
Size: 1,999 bytes
 

Contents

Class file image Download
/** * Due to the fact that DataTables moves DOM elements around (mainly `dt-tag tr` * elements for sorting and filtering) it can at times be a little tricky to get * the next row based on another, while taking into account pagination, * filtering, sorting etc. * * This function is designed to address exactly this situation. It takes two * parameters, the target node, and a boolean indicating if the adjacent row * retrieved should be the next (`true`, or no value) or the previous (`false`). * * @name fnGetAdjacentTr * @summary Get the adjacent `dt-tag tr` element for a row. * @author [Allan Jardine](http://sprymedia.co.uk) * * @param {node} nTr `dt-tag tr` element to get the adjacent element of * @param {boolean} [bNext=true] Get the next (`true`), or previous (`false`) * `dt-tag tr` element. * @returns {node} `dt-tag tr` element or null if not found. * * @example * $(document).ready(function() { * var table = $('#example').dataTable(); * * var n1 = $('#example tbody tr').eq(2)[0]; * var next = table.fnGetAdjacentTr( n1 ); * var prev = table.fnGetAdjacentTr( n1, false ); * } ); */ jQuery.fn.dataTableExt.oApi.fnGetAdjacentTr = function ( oSettings, nTr, bNext ) { /* Find the node's position in the aoData store */ var iCurrent = oSettings.oApi._fnNodeToDataIndex( oSettings, nTr ); /* Convert that to a position in the display array */ var iDisplayIndex = $.inArray( iCurrent, oSettings.aiDisplay ); if ( iDisplayIndex == -1 ) { /* Not in the current display */ return null; } /* Move along the display array as needed */ iDisplayIndex += (typeof bNext=='undefined' || bNext) ? 1 : -1; /* Check that it within bounds */ if ( iDisplayIndex < 0 || iDisplayIndex >= oSettings.aiDisplay.length ) { /* There is no next/previous element */ return null; } /* Return the target node from the aoData store */ return oSettings.aoData[ oSettings.aiDisplay[ iDisplayIndex ] ].nTr; };