mirror of
https://github.com/DataTables/DataTables.git
synced 2024-11-29 11:24:10 +01:00
Fix #161: DOM sorting plug-ins updated
- Cope with the change in jQuery 1.9 for element ordering. From the DataTables thread on this topic ( 14316 ): So a bit of further investigation into this - I've used these two test caseS: No DataTables: http://live.datatables.net/uwidel/edit#source DataTables: http://live.datatables.net/ivojev/4/edit The new DataTables version shows that jQuery 1.9 is now always trying to order the nodes by document order, not but the order that they are found in the source array. Additionally removed nodes are appended to the results, themselves in reserve order, but that's just the way the Sizzle node ordering works when items are not in the document (try sorting numbers and you get the same result). Given the suggestion in the release notes that the move is to have nodes always treated in document order, I don't think this is a bug, so not filing one. It is a bit frustrating that the nodes are iterated in a different order from the source array, but it is expected from their documentation and comments. So this is simply something we'll need to work around. To that end, I've updated the examples and taken the unusual step of updating the examples on this site outside the normal release cycle. The examples in the 1.9.4 current release of DataTables can't change of course, but the updated examples will be in 1.10 when it is released.
This commit is contained in:
parent
3e1a41dccd
commit
e00037a1af
@ -17,31 +17,25 @@
|
||||
/* Create an array with the values of all the input boxes in a column */
|
||||
$.fn.dataTableExt.afnSortData['dom-text'] = function ( oSettings, iColumn )
|
||||
{
|
||||
var aData = [];
|
||||
$( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
|
||||
aData.push( this.value );
|
||||
return $.map( oSettings.oApi._fnGetTrNodes(oSettings), function (tr, i) {
|
||||
return $('td:eq('+iColumn+') input', tr).val();
|
||||
} );
|
||||
return aData;
|
||||
}
|
||||
|
||||
/* Create an array with the values of all the select options in a column */
|
||||
$.fn.dataTableExt.afnSortData['dom-select'] = function ( oSettings, iColumn )
|
||||
{
|
||||
var aData = [];
|
||||
$( 'td:eq('+iColumn+') select', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
|
||||
aData.push( $(this).val() );
|
||||
return $.map( oSettings.oApi._fnGetTrNodes(oSettings), function (tr, i) {
|
||||
return $('td:eq('+iColumn+') select', tr).val();
|
||||
} );
|
||||
return aData;
|
||||
}
|
||||
|
||||
/* Create an array with the values of all the checkboxes in a column */
|
||||
$.fn.dataTableExt.afnSortData['dom-checkbox'] = function ( oSettings, iColumn )
|
||||
{
|
||||
var aData = [];
|
||||
$( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
|
||||
aData.push( this.checked==true ? "1" : "0" );
|
||||
return $.map( oSettings.oApi._fnGetTrNodes(oSettings), function (tr, i) {
|
||||
return $('td:eq('+iColumn+') input', tr).prop('checked') ? '1' : '0';
|
||||
} );
|
||||
return aData;
|
||||
}
|
||||
|
||||
/* Initialise the table with the required column sorting data types */
|
||||
@ -963,31 +957,25 @@
|
||||
<pre class="brush: js;">/* Create an array with the values of all the input boxes in a column */
|
||||
$.fn.dataTableExt.afnSortData['dom-text'] = function ( oSettings, iColumn )
|
||||
{
|
||||
var aData = [];
|
||||
$( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
|
||||
aData.push( this.value );
|
||||
return $.map( oSettings.oApi._fnGetTrNodes(oSettings), function (tr, i) {
|
||||
return $('td:eq('+iColumn+') input', tr).val();
|
||||
} );
|
||||
return aData;
|
||||
}
|
||||
|
||||
/* Create an array with the values of all the select options in a column */
|
||||
$.fn.dataTableExt.afnSortData['dom-select'] = function ( oSettings, iColumn )
|
||||
{
|
||||
var aData = [];
|
||||
$( 'td:eq('+iColumn+') select', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
|
||||
aData.push( $(this).val() );
|
||||
return $.map( oSettings.oApi._fnGetTrNodes(oSettings), function (tr, i) {
|
||||
return $('td:eq('+iColumn+') select', tr).val();
|
||||
} );
|
||||
return aData;
|
||||
}
|
||||
|
||||
/* Create an array with the values of all the checkboxes in a column */
|
||||
$.fn.dataTableExt.afnSortData['dom-checkbox'] = function ( oSettings, iColumn )
|
||||
{
|
||||
var aData = [];
|
||||
$( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
|
||||
aData.push( this.checked==true ? "1" : "0" );
|
||||
return $.map( oSettings.oApi._fnGetTrNodes(oSettings), function (tr, i) {
|
||||
return $('td:eq('+iColumn+') input', tr).prop('checked') ? '1' : '0';
|
||||
} );
|
||||
return aData;
|
||||
}
|
||||
|
||||
/* Initialise the table with the required column sorting data types */
|
||||
|
Loading…
Reference in New Issue
Block a user