mirror of
https://github.com/Mottie/tablesorter.git
synced 2024-12-05 05:04:20 +00:00
Core: Add updateHeaders method. See #989
This commit is contained in:
parent
e8bc2bef2e
commit
2b8a104e1e
46
dist/js/jquery.tablesorter.combined.js
vendored
46
dist/js/jquery.tablesorter.combined.js
vendored
@ -1,4 +1,4 @@
|
|||||||
/*! tablesorter (FORK) - updated 08-16-2015 (v2.22.5)*/
|
/*! tablesorter (FORK) - updated 08-17-2015 (v2.22.5)*/
|
||||||
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
||||||
(function(factory) {
|
(function(factory) {
|
||||||
if (typeof define === 'function' && define.amd) {
|
if (typeof define === 'function' && define.amd) {
|
||||||
@ -432,9 +432,8 @@
|
|||||||
return (/^d/i.test(v) || v === 1);
|
return (/^d/i.test(v) || v === 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildHeaders(table) {
|
function buildHeaders( c ) {
|
||||||
var ch, $t, h, i, t, lock, time, indx,
|
var ch, $t, h, i, t, lock, time, indx;
|
||||||
c = table.config;
|
|
||||||
c.headerList = [];
|
c.headerList = [];
|
||||||
c.headerContent = [];
|
c.headerContent = [];
|
||||||
if (c.debug) {
|
if (c.debug) {
|
||||||
@ -445,12 +444,12 @@
|
|||||||
// add icon if cssIcon option exists
|
// add icon if cssIcon option exists
|
||||||
i = c.cssIcon ? '<i class="' + ( c.cssIcon === ts.css.icon ? ts.css.icon : c.cssIcon + ' ' + ts.css.icon ) + '"></i>' : '';
|
i = c.cssIcon ? '<i class="' + ( c.cssIcon === ts.css.icon ? ts.css.icon : c.cssIcon + ' ' + ts.css.icon ) + '"></i>' : '';
|
||||||
// redefine c.$headers here in case of an updateAll that replaces or adds an entire header cell - see #683
|
// redefine c.$headers here in case of an updateAll that replaces or adds an entire header cell - see #683
|
||||||
c.$headers = $( $.map( $(table).find(c.selectorHeaders), function(elem, index) {
|
c.$headers = $( $.map( c.$table.find(c.selectorHeaders), function(elem, index) {
|
||||||
$t = $(elem);
|
$t = $(elem);
|
||||||
// ignore cell (don't add it to c.$headers) if row has ignoreRow class
|
// ignore cell (don't add it to c.$headers) if row has ignoreRow class
|
||||||
if ($t.parent().hasClass(c.cssIgnoreRow)) { return; }
|
if ($t.parent().hasClass(c.cssIgnoreRow)) { return; }
|
||||||
// make sure to get header cell & not column indexed cell
|
// make sure to get header cell & not column indexed cell
|
||||||
ch = ts.getColumnData( table, c.headers, index, true );
|
ch = ts.getColumnData( c.table, c.headers, index, true );
|
||||||
// save original header content
|
// save original header content
|
||||||
c.headerContent[index] = $t.html();
|
c.headerContent[index] = $t.html();
|
||||||
// if headerTemplate is empty, don't reformat the header cell
|
// if headerTemplate is empty, don't reformat the header cell
|
||||||
@ -492,12 +491,12 @@
|
|||||||
// .last() added in jQuery 1.4; use .filter(':last') to maintain compatibility with jQuery v1.2.6
|
// .last() added in jQuery 1.4; use .filter(':last') to maintain compatibility with jQuery v1.2.6
|
||||||
c.$headerIndexed[indx] = $t.not('.sorter-false').length ? $t.not('.sorter-false').filter(':last') : $t.filter(':last');
|
c.$headerIndexed[indx] = $t.not('.sorter-false').length ? $t.not('.sorter-false').filter(':last') : $t.filter(':last');
|
||||||
}
|
}
|
||||||
$(table).find(c.selectorHeaders).attr({
|
c.$table.find(c.selectorHeaders).attr({
|
||||||
scope: 'col',
|
scope: 'col',
|
||||||
role : 'columnheader'
|
role : 'columnheader'
|
||||||
});
|
});
|
||||||
// enable/disable sorting
|
// enable/disable sorting
|
||||||
updateHeader(table);
|
updateHeader(c.table);
|
||||||
if (c.debug) {
|
if (c.debug) {
|
||||||
console.log( 'Built headers:' + ts.benchmark( time ) );
|
console.log( 'Built headers:' + ts.benchmark( time ) );
|
||||||
console.log( c.$headers );
|
console.log( c.$headers );
|
||||||
@ -863,8 +862,9 @@
|
|||||||
function bindMethods( table ){
|
function bindMethods( table ){
|
||||||
var c = table.config,
|
var c = table.config,
|
||||||
$table = c.$table,
|
$table = c.$table,
|
||||||
events = ( 'sortReset update updateRows updateCell updateAll addRows updateComplete sorton appendCache ' +
|
events = ( 'sortReset update updateRows updateAll updateHeaders addRows updateCell updateComplete ' +
|
||||||
'updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave ' ).split( ' ' )
|
'sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup ' +
|
||||||
|
'mouseleave ' ).split( ' ' )
|
||||||
.join( c.namespace + ' ' );
|
.join( c.namespace + ' ' );
|
||||||
// apply easy methods that trigger bound events
|
// apply easy methods that trigger bound events
|
||||||
$table
|
$table
|
||||||
@ -882,6 +882,10 @@
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
ts.update( this.config, resort, callback );
|
ts.update( this.config, resort, callback );
|
||||||
})
|
})
|
||||||
|
.bind( 'updateHeaders' + c.namespace, function( e, callback ) {
|
||||||
|
e.stopPropagation();
|
||||||
|
ts.updateHeaders( this.config, callback );
|
||||||
|
})
|
||||||
.bind( 'updateCell' + c.namespace, function(e, cell, resort, callback ) {
|
.bind( 'updateCell' + c.namespace, function(e, cell, resort, callback ) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
ts.updateCell( this.config, cell, resort, callback );
|
ts.updateCell( this.config, cell, resort, callback );
|
||||||
@ -1028,7 +1032,7 @@
|
|||||||
// change textExtraction via data-attribute
|
// change textExtraction via data-attribute
|
||||||
c.textExtraction = c.$table.attr('data-text-extraction') || c.textExtraction || 'basic';
|
c.textExtraction = c.$table.attr('data-text-extraction') || c.textExtraction || 'basic';
|
||||||
// build headers
|
// build headers
|
||||||
buildHeaders(table);
|
buildHeaders( c );
|
||||||
// fixate columns if the users supplies the fixedWidth option
|
// fixate columns if the users supplies the fixedWidth option
|
||||||
// do this after theme has been applied
|
// do this after theme has been applied
|
||||||
ts.fixColumnWidth(table);
|
ts.fixColumnWidth(table);
|
||||||
@ -1317,7 +1321,7 @@
|
|||||||
var table = c.table;
|
var table = c.table;
|
||||||
table.isUpdating = true;
|
table.isUpdating = true;
|
||||||
ts.refreshWidgets( table, true, true );
|
ts.refreshWidgets( table, true, true );
|
||||||
buildHeaders( table );
|
buildHeaders( c );
|
||||||
ts.bindEvents( table, c.$headers, true );
|
ts.bindEvents( table, c.$headers, true );
|
||||||
bindMethods( table);
|
bindMethods( table);
|
||||||
commonUpdate( table, resort, callback );
|
commonUpdate( table, resort, callback );
|
||||||
@ -1331,6 +1335,14 @@
|
|||||||
commonUpdate( table, resort, callback );
|
commonUpdate( table, resort, callback );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// simple header update - see #989
|
||||||
|
ts.updateHeaders = function( c, callback ) {
|
||||||
|
c.table.isUpdating = true;
|
||||||
|
buildHeaders( c );
|
||||||
|
ts.bindEvents( c.table, c.$headers, true );
|
||||||
|
resortComplete( c, callback );
|
||||||
|
};
|
||||||
|
|
||||||
ts.updateCell = function( c, cell, resort, callback ) {
|
ts.updateCell = function( c, cell, resort, callback ) {
|
||||||
c.table.isUpdating = true;
|
c.table.isUpdating = true;
|
||||||
c.$table.find( c.selectorRemove ).remove();
|
c.$table.find( c.selectorRemove ).remove();
|
||||||
@ -1364,10 +1376,7 @@
|
|||||||
} else {
|
} else {
|
||||||
// don't reapply widgets is resort is false, just in case it causes
|
// don't reapply widgets is resort is false, just in case it causes
|
||||||
// problems with element focus
|
// problems with element focus
|
||||||
if ( $.isFunction( callback ) ) {
|
resortComplete( c, callback );
|
||||||
callback( table );
|
|
||||||
}
|
|
||||||
c.$table.trigger( 'updateComplete', c.table );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -1548,8 +1557,9 @@
|
|||||||
// remove widget added rows, just in case
|
// remove widget added rows, just in case
|
||||||
$h.find('tr').not($r).remove();
|
$h.find('tr').not($r).remove();
|
||||||
// disable tablesorter
|
// disable tablesorter
|
||||||
events = 'sortReset update updateAll updateRows updateCell addRows updateComplete sorton appendCache updateCache ' +
|
events = 'sortReset update updateRows updateAll updateHeaders updateCell addRows updateComplete sorton ' +
|
||||||
'applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave keypress sortBegin sortEnd resetToLoadState '.split(' ')
|
'appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave keypress ' +
|
||||||
|
'sortBegin sortEnd resetToLoadState '.split(' ')
|
||||||
.join(c.namespace + ' ');
|
.join(c.namespace + ' ');
|
||||||
$t
|
$t
|
||||||
.removeData('tablesorter')
|
.removeData('tablesorter')
|
||||||
|
8
dist/js/jquery.tablesorter.combined.min.js
vendored
8
dist/js/jquery.tablesorter.combined.min.js
vendored
File diff suppressed because one or more lines are too long
44
dist/js/jquery.tablesorter.js
vendored
44
dist/js/jquery.tablesorter.js
vendored
@ -430,9 +430,8 @@
|
|||||||
return (/^d/i.test(v) || v === 1);
|
return (/^d/i.test(v) || v === 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildHeaders(table) {
|
function buildHeaders( c ) {
|
||||||
var ch, $t, h, i, t, lock, time, indx,
|
var ch, $t, h, i, t, lock, time, indx;
|
||||||
c = table.config;
|
|
||||||
c.headerList = [];
|
c.headerList = [];
|
||||||
c.headerContent = [];
|
c.headerContent = [];
|
||||||
if (c.debug) {
|
if (c.debug) {
|
||||||
@ -443,12 +442,12 @@
|
|||||||
// add icon if cssIcon option exists
|
// add icon if cssIcon option exists
|
||||||
i = c.cssIcon ? '<i class="' + ( c.cssIcon === ts.css.icon ? ts.css.icon : c.cssIcon + ' ' + ts.css.icon ) + '"></i>' : '';
|
i = c.cssIcon ? '<i class="' + ( c.cssIcon === ts.css.icon ? ts.css.icon : c.cssIcon + ' ' + ts.css.icon ) + '"></i>' : '';
|
||||||
// redefine c.$headers here in case of an updateAll that replaces or adds an entire header cell - see #683
|
// redefine c.$headers here in case of an updateAll that replaces or adds an entire header cell - see #683
|
||||||
c.$headers = $( $.map( $(table).find(c.selectorHeaders), function(elem, index) {
|
c.$headers = $( $.map( c.$table.find(c.selectorHeaders), function(elem, index) {
|
||||||
$t = $(elem);
|
$t = $(elem);
|
||||||
// ignore cell (don't add it to c.$headers) if row has ignoreRow class
|
// ignore cell (don't add it to c.$headers) if row has ignoreRow class
|
||||||
if ($t.parent().hasClass(c.cssIgnoreRow)) { return; }
|
if ($t.parent().hasClass(c.cssIgnoreRow)) { return; }
|
||||||
// make sure to get header cell & not column indexed cell
|
// make sure to get header cell & not column indexed cell
|
||||||
ch = ts.getColumnData( table, c.headers, index, true );
|
ch = ts.getColumnData( c.table, c.headers, index, true );
|
||||||
// save original header content
|
// save original header content
|
||||||
c.headerContent[index] = $t.html();
|
c.headerContent[index] = $t.html();
|
||||||
// if headerTemplate is empty, don't reformat the header cell
|
// if headerTemplate is empty, don't reformat the header cell
|
||||||
@ -490,12 +489,12 @@
|
|||||||
// .last() added in jQuery 1.4; use .filter(':last') to maintain compatibility with jQuery v1.2.6
|
// .last() added in jQuery 1.4; use .filter(':last') to maintain compatibility with jQuery v1.2.6
|
||||||
c.$headerIndexed[indx] = $t.not('.sorter-false').length ? $t.not('.sorter-false').filter(':last') : $t.filter(':last');
|
c.$headerIndexed[indx] = $t.not('.sorter-false').length ? $t.not('.sorter-false').filter(':last') : $t.filter(':last');
|
||||||
}
|
}
|
||||||
$(table).find(c.selectorHeaders).attr({
|
c.$table.find(c.selectorHeaders).attr({
|
||||||
scope: 'col',
|
scope: 'col',
|
||||||
role : 'columnheader'
|
role : 'columnheader'
|
||||||
});
|
});
|
||||||
// enable/disable sorting
|
// enable/disable sorting
|
||||||
updateHeader(table);
|
updateHeader(c.table);
|
||||||
if (c.debug) {
|
if (c.debug) {
|
||||||
console.log( 'Built headers:' + ts.benchmark( time ) );
|
console.log( 'Built headers:' + ts.benchmark( time ) );
|
||||||
console.log( c.$headers );
|
console.log( c.$headers );
|
||||||
@ -861,8 +860,9 @@
|
|||||||
function bindMethods( table ){
|
function bindMethods( table ){
|
||||||
var c = table.config,
|
var c = table.config,
|
||||||
$table = c.$table,
|
$table = c.$table,
|
||||||
events = ( 'sortReset update updateRows updateCell updateAll addRows updateComplete sorton appendCache ' +
|
events = ( 'sortReset update updateRows updateAll updateHeaders addRows updateCell updateComplete ' +
|
||||||
'updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave ' ).split( ' ' )
|
'sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup ' +
|
||||||
|
'mouseleave ' ).split( ' ' )
|
||||||
.join( c.namespace + ' ' );
|
.join( c.namespace + ' ' );
|
||||||
// apply easy methods that trigger bound events
|
// apply easy methods that trigger bound events
|
||||||
$table
|
$table
|
||||||
@ -880,6 +880,10 @@
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
ts.update( this.config, resort, callback );
|
ts.update( this.config, resort, callback );
|
||||||
})
|
})
|
||||||
|
.bind( 'updateHeaders' + c.namespace, function( e, callback ) {
|
||||||
|
e.stopPropagation();
|
||||||
|
ts.updateHeaders( this.config, callback );
|
||||||
|
})
|
||||||
.bind( 'updateCell' + c.namespace, function(e, cell, resort, callback ) {
|
.bind( 'updateCell' + c.namespace, function(e, cell, resort, callback ) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
ts.updateCell( this.config, cell, resort, callback );
|
ts.updateCell( this.config, cell, resort, callback );
|
||||||
@ -1026,7 +1030,7 @@
|
|||||||
// change textExtraction via data-attribute
|
// change textExtraction via data-attribute
|
||||||
c.textExtraction = c.$table.attr('data-text-extraction') || c.textExtraction || 'basic';
|
c.textExtraction = c.$table.attr('data-text-extraction') || c.textExtraction || 'basic';
|
||||||
// build headers
|
// build headers
|
||||||
buildHeaders(table);
|
buildHeaders( c );
|
||||||
// fixate columns if the users supplies the fixedWidth option
|
// fixate columns if the users supplies the fixedWidth option
|
||||||
// do this after theme has been applied
|
// do this after theme has been applied
|
||||||
ts.fixColumnWidth(table);
|
ts.fixColumnWidth(table);
|
||||||
@ -1315,7 +1319,7 @@
|
|||||||
var table = c.table;
|
var table = c.table;
|
||||||
table.isUpdating = true;
|
table.isUpdating = true;
|
||||||
ts.refreshWidgets( table, true, true );
|
ts.refreshWidgets( table, true, true );
|
||||||
buildHeaders( table );
|
buildHeaders( c );
|
||||||
ts.bindEvents( table, c.$headers, true );
|
ts.bindEvents( table, c.$headers, true );
|
||||||
bindMethods( table);
|
bindMethods( table);
|
||||||
commonUpdate( table, resort, callback );
|
commonUpdate( table, resort, callback );
|
||||||
@ -1329,6 +1333,14 @@
|
|||||||
commonUpdate( table, resort, callback );
|
commonUpdate( table, resort, callback );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// simple header update - see #989
|
||||||
|
ts.updateHeaders = function( c, callback ) {
|
||||||
|
c.table.isUpdating = true;
|
||||||
|
buildHeaders( c );
|
||||||
|
ts.bindEvents( c.table, c.$headers, true );
|
||||||
|
resortComplete( c, callback );
|
||||||
|
};
|
||||||
|
|
||||||
ts.updateCell = function( c, cell, resort, callback ) {
|
ts.updateCell = function( c, cell, resort, callback ) {
|
||||||
c.table.isUpdating = true;
|
c.table.isUpdating = true;
|
||||||
c.$table.find( c.selectorRemove ).remove();
|
c.$table.find( c.selectorRemove ).remove();
|
||||||
@ -1362,10 +1374,7 @@
|
|||||||
} else {
|
} else {
|
||||||
// don't reapply widgets is resort is false, just in case it causes
|
// don't reapply widgets is resort is false, just in case it causes
|
||||||
// problems with element focus
|
// problems with element focus
|
||||||
if ( $.isFunction( callback ) ) {
|
resortComplete( c, callback );
|
||||||
callback( table );
|
|
||||||
}
|
|
||||||
c.$table.trigger( 'updateComplete', c.table );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -1546,8 +1555,9 @@
|
|||||||
// remove widget added rows, just in case
|
// remove widget added rows, just in case
|
||||||
$h.find('tr').not($r).remove();
|
$h.find('tr').not($r).remove();
|
||||||
// disable tablesorter
|
// disable tablesorter
|
||||||
events = 'sortReset update updateAll updateRows updateCell addRows updateComplete sorton appendCache updateCache ' +
|
events = 'sortReset update updateRows updateAll updateHeaders updateCell addRows updateComplete sorton ' +
|
||||||
'applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave keypress sortBegin sortEnd resetToLoadState '.split(' ')
|
'appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave keypress ' +
|
||||||
|
'sortBegin sortEnd resetToLoadState '.split(' ')
|
||||||
.join(c.namespace + ' ');
|
.join(c.namespace + ' ');
|
||||||
$t
|
$t
|
||||||
.removeData('tablesorter')
|
.removeData('tablesorter')
|
||||||
|
4
dist/js/jquery.tablesorter.min.js
vendored
4
dist/js/jquery.tablesorter.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/js/jquery.tablesorter.widgets.js
vendored
2
dist/js/jquery.tablesorter.widgets.js
vendored
@ -1,4 +1,4 @@
|
|||||||
/*! tablesorter (FORK) - updated 08-16-2015 (v2.22.5)*/
|
/*! tablesorter (FORK) - updated 08-17-2015 (v2.22.5)*/
|
||||||
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
||||||
(function(factory) {
|
(function(factory) {
|
||||||
if (typeof define === 'function' && define.amd) {
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
2
dist/js/jquery.tablesorter.widgets.min.js
vendored
2
dist/js/jquery.tablesorter.widgets.min.js
vendored
File diff suppressed because one or more lines are too long
@ -4863,6 +4863,45 @@ $("table")
|
|||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr id="updateheaders">
|
||||||
|
<td><a href="#" class="permalink">updateHeaders</a></td>
|
||||||
|
<td>Refresh table headers only (<span class="version">v2.23.0</span>).
|
||||||
|
<div class="collapsible">
|
||||||
|
<h4>Direct method:</h4>
|
||||||
|
<p>In <span class="version">v2.23.0</span>, this method can be called directly as follows:</p>
|
||||||
|
<pre class="prettyprint lang-js">var config = $( 'table' )[ 0 ].config,
|
||||||
|
callback = function( table ) {
|
||||||
|
// do something
|
||||||
|
};
|
||||||
|
$.tablesorter.updateHeaders( config, callback );</pre>
|
||||||
|
<h4>Triggered event method:</h4>
|
||||||
|
<pre class="prettyprint lang-js">$(function() {
|
||||||
|
$( 'table' ).tablesorter();
|
||||||
|
|
||||||
|
// click on a button somewhere on the page to update header index
|
||||||
|
$( 'button' ).click( function() {
|
||||||
|
// Do something after the cell update in this callback function
|
||||||
|
var $headerCell = $('thead th:eq(1)'),
|
||||||
|
index = $headerCell.data( 'counter' ) || 0,
|
||||||
|
callback = function( table ) {
|
||||||
|
/* do something */
|
||||||
|
};
|
||||||
|
|
||||||
|
// change header text
|
||||||
|
$headerCell
|
||||||
|
.html( 'header click #' + index )
|
||||||
|
// update header data
|
||||||
|
.data( 'counter', index++ );
|
||||||
|
|
||||||
|
// update the header, includes rebinding events & using the header template
|
||||||
|
$( 'table' ).trigger( 'updateHeaders', callback );
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
});</pre></div>
|
||||||
|
</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr id="updatecell">
|
<tr id="updatecell">
|
||||||
<td><a href="#" class="permalink">updateCell</a></td>
|
<td><a href="#" class="permalink">updateCell</a></td>
|
||||||
<td>Update a table cell in the tablesorter data (<span class="version updated">v2.23.0</span>).
|
<td>Update a table cell in the tablesorter data (<span class="version updated">v2.23.0</span>).
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀▀██
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀▀██
|
||||||
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
||||||
*/
|
*/
|
||||||
/*! tablesorter (FORK) - updated 08-16-2015 (v2.22.5)*/
|
/*! tablesorter (FORK) - updated 08-17-2015 (v2.22.5)*/
|
||||||
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
||||||
(function(factory) {
|
(function(factory) {
|
||||||
if (typeof define === 'function' && define.amd) {
|
if (typeof define === 'function' && define.amd) {
|
||||||
@ -438,9 +438,8 @@
|
|||||||
return (/^d/i.test(v) || v === 1);
|
return (/^d/i.test(v) || v === 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildHeaders(table) {
|
function buildHeaders( c ) {
|
||||||
var ch, $t, h, i, t, lock, time, indx,
|
var ch, $t, h, i, t, lock, time, indx;
|
||||||
c = table.config;
|
|
||||||
c.headerList = [];
|
c.headerList = [];
|
||||||
c.headerContent = [];
|
c.headerContent = [];
|
||||||
if (c.debug) {
|
if (c.debug) {
|
||||||
@ -451,12 +450,12 @@
|
|||||||
// add icon if cssIcon option exists
|
// add icon if cssIcon option exists
|
||||||
i = c.cssIcon ? '<i class="' + ( c.cssIcon === ts.css.icon ? ts.css.icon : c.cssIcon + ' ' + ts.css.icon ) + '"></i>' : '';
|
i = c.cssIcon ? '<i class="' + ( c.cssIcon === ts.css.icon ? ts.css.icon : c.cssIcon + ' ' + ts.css.icon ) + '"></i>' : '';
|
||||||
// redefine c.$headers here in case of an updateAll that replaces or adds an entire header cell - see #683
|
// redefine c.$headers here in case of an updateAll that replaces or adds an entire header cell - see #683
|
||||||
c.$headers = $( $.map( $(table).find(c.selectorHeaders), function(elem, index) {
|
c.$headers = $( $.map( c.$table.find(c.selectorHeaders), function(elem, index) {
|
||||||
$t = $(elem);
|
$t = $(elem);
|
||||||
// ignore cell (don't add it to c.$headers) if row has ignoreRow class
|
// ignore cell (don't add it to c.$headers) if row has ignoreRow class
|
||||||
if ($t.parent().hasClass(c.cssIgnoreRow)) { return; }
|
if ($t.parent().hasClass(c.cssIgnoreRow)) { return; }
|
||||||
// make sure to get header cell & not column indexed cell
|
// make sure to get header cell & not column indexed cell
|
||||||
ch = ts.getColumnData( table, c.headers, index, true );
|
ch = ts.getColumnData( c.table, c.headers, index, true );
|
||||||
// save original header content
|
// save original header content
|
||||||
c.headerContent[index] = $t.html();
|
c.headerContent[index] = $t.html();
|
||||||
// if headerTemplate is empty, don't reformat the header cell
|
// if headerTemplate is empty, don't reformat the header cell
|
||||||
@ -498,12 +497,12 @@
|
|||||||
// .last() added in jQuery 1.4; use .filter(':last') to maintain compatibility with jQuery v1.2.6
|
// .last() added in jQuery 1.4; use .filter(':last') to maintain compatibility with jQuery v1.2.6
|
||||||
c.$headerIndexed[indx] = $t.not('.sorter-false').length ? $t.not('.sorter-false').filter(':last') : $t.filter(':last');
|
c.$headerIndexed[indx] = $t.not('.sorter-false').length ? $t.not('.sorter-false').filter(':last') : $t.filter(':last');
|
||||||
}
|
}
|
||||||
$(table).find(c.selectorHeaders).attr({
|
c.$table.find(c.selectorHeaders).attr({
|
||||||
scope: 'col',
|
scope: 'col',
|
||||||
role : 'columnheader'
|
role : 'columnheader'
|
||||||
});
|
});
|
||||||
// enable/disable sorting
|
// enable/disable sorting
|
||||||
updateHeader(table);
|
updateHeader(c.table);
|
||||||
if (c.debug) {
|
if (c.debug) {
|
||||||
console.log( 'Built headers:' + ts.benchmark( time ) );
|
console.log( 'Built headers:' + ts.benchmark( time ) );
|
||||||
console.log( c.$headers );
|
console.log( c.$headers );
|
||||||
@ -869,8 +868,9 @@
|
|||||||
function bindMethods( table ){
|
function bindMethods( table ){
|
||||||
var c = table.config,
|
var c = table.config,
|
||||||
$table = c.$table,
|
$table = c.$table,
|
||||||
events = ( 'sortReset update updateRows updateCell updateAll addRows updateComplete sorton appendCache ' +
|
events = ( 'sortReset update updateRows updateAll updateHeaders addRows updateCell updateComplete ' +
|
||||||
'updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave ' ).split( ' ' )
|
'sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup ' +
|
||||||
|
'mouseleave ' ).split( ' ' )
|
||||||
.join( c.namespace + ' ' );
|
.join( c.namespace + ' ' );
|
||||||
// apply easy methods that trigger bound events
|
// apply easy methods that trigger bound events
|
||||||
$table
|
$table
|
||||||
@ -888,6 +888,10 @@
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
ts.update( this.config, resort, callback );
|
ts.update( this.config, resort, callback );
|
||||||
})
|
})
|
||||||
|
.bind( 'updateHeaders' + c.namespace, function( e, callback ) {
|
||||||
|
e.stopPropagation();
|
||||||
|
ts.updateHeaders( this.config, callback );
|
||||||
|
})
|
||||||
.bind( 'updateCell' + c.namespace, function(e, cell, resort, callback ) {
|
.bind( 'updateCell' + c.namespace, function(e, cell, resort, callback ) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
ts.updateCell( this.config, cell, resort, callback );
|
ts.updateCell( this.config, cell, resort, callback );
|
||||||
@ -1034,7 +1038,7 @@
|
|||||||
// change textExtraction via data-attribute
|
// change textExtraction via data-attribute
|
||||||
c.textExtraction = c.$table.attr('data-text-extraction') || c.textExtraction || 'basic';
|
c.textExtraction = c.$table.attr('data-text-extraction') || c.textExtraction || 'basic';
|
||||||
// build headers
|
// build headers
|
||||||
buildHeaders(table);
|
buildHeaders( c );
|
||||||
// fixate columns if the users supplies the fixedWidth option
|
// fixate columns if the users supplies the fixedWidth option
|
||||||
// do this after theme has been applied
|
// do this after theme has been applied
|
||||||
ts.fixColumnWidth(table);
|
ts.fixColumnWidth(table);
|
||||||
@ -1323,7 +1327,7 @@
|
|||||||
var table = c.table;
|
var table = c.table;
|
||||||
table.isUpdating = true;
|
table.isUpdating = true;
|
||||||
ts.refreshWidgets( table, true, true );
|
ts.refreshWidgets( table, true, true );
|
||||||
buildHeaders( table );
|
buildHeaders( c );
|
||||||
ts.bindEvents( table, c.$headers, true );
|
ts.bindEvents( table, c.$headers, true );
|
||||||
bindMethods( table);
|
bindMethods( table);
|
||||||
commonUpdate( table, resort, callback );
|
commonUpdate( table, resort, callback );
|
||||||
@ -1337,6 +1341,14 @@
|
|||||||
commonUpdate( table, resort, callback );
|
commonUpdate( table, resort, callback );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// simple header update - see #989
|
||||||
|
ts.updateHeaders = function( c, callback ) {
|
||||||
|
c.table.isUpdating = true;
|
||||||
|
buildHeaders( c );
|
||||||
|
ts.bindEvents( c.table, c.$headers, true );
|
||||||
|
resortComplete( c, callback );
|
||||||
|
};
|
||||||
|
|
||||||
ts.updateCell = function( c, cell, resort, callback ) {
|
ts.updateCell = function( c, cell, resort, callback ) {
|
||||||
c.table.isUpdating = true;
|
c.table.isUpdating = true;
|
||||||
c.$table.find( c.selectorRemove ).remove();
|
c.$table.find( c.selectorRemove ).remove();
|
||||||
@ -1370,10 +1382,7 @@
|
|||||||
} else {
|
} else {
|
||||||
// don't reapply widgets is resort is false, just in case it causes
|
// don't reapply widgets is resort is false, just in case it causes
|
||||||
// problems with element focus
|
// problems with element focus
|
||||||
if ( $.isFunction( callback ) ) {
|
resortComplete( c, callback );
|
||||||
callback( table );
|
|
||||||
}
|
|
||||||
c.$table.trigger( 'updateComplete', c.table );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -1554,8 +1563,9 @@
|
|||||||
// remove widget added rows, just in case
|
// remove widget added rows, just in case
|
||||||
$h.find('tr').not($r).remove();
|
$h.find('tr').not($r).remove();
|
||||||
// disable tablesorter
|
// disable tablesorter
|
||||||
events = 'sortReset update updateAll updateRows updateCell addRows updateComplete sorton appendCache updateCache ' +
|
events = 'sortReset update updateRows updateAll updateHeaders updateCell addRows updateComplete sorton ' +
|
||||||
'applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave keypress sortBegin sortEnd resetToLoadState '.split(' ')
|
'appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave keypress ' +
|
||||||
|
'sortBegin sortEnd resetToLoadState '.split(' ')
|
||||||
.join(c.namespace + ' ');
|
.join(c.namespace + ' ');
|
||||||
$t
|
$t
|
||||||
.removeData('tablesorter')
|
.removeData('tablesorter')
|
||||||
|
@ -420,9 +420,8 @@
|
|||||||
return (/^d/i.test(v) || v === 1);
|
return (/^d/i.test(v) || v === 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildHeaders(table) {
|
function buildHeaders( c ) {
|
||||||
var ch, $t, h, i, t, lock, time, indx,
|
var ch, $t, h, i, t, lock, time, indx;
|
||||||
c = table.config;
|
|
||||||
c.headerList = [];
|
c.headerList = [];
|
||||||
c.headerContent = [];
|
c.headerContent = [];
|
||||||
if (c.debug) {
|
if (c.debug) {
|
||||||
@ -433,12 +432,12 @@
|
|||||||
// add icon if cssIcon option exists
|
// add icon if cssIcon option exists
|
||||||
i = c.cssIcon ? '<i class="' + ( c.cssIcon === ts.css.icon ? ts.css.icon : c.cssIcon + ' ' + ts.css.icon ) + '"></i>' : '';
|
i = c.cssIcon ? '<i class="' + ( c.cssIcon === ts.css.icon ? ts.css.icon : c.cssIcon + ' ' + ts.css.icon ) + '"></i>' : '';
|
||||||
// redefine c.$headers here in case of an updateAll that replaces or adds an entire header cell - see #683
|
// redefine c.$headers here in case of an updateAll that replaces or adds an entire header cell - see #683
|
||||||
c.$headers = $( $.map( $(table).find(c.selectorHeaders), function(elem, index) {
|
c.$headers = $( $.map( c.$table.find(c.selectorHeaders), function(elem, index) {
|
||||||
$t = $(elem);
|
$t = $(elem);
|
||||||
// ignore cell (don't add it to c.$headers) if row has ignoreRow class
|
// ignore cell (don't add it to c.$headers) if row has ignoreRow class
|
||||||
if ($t.parent().hasClass(c.cssIgnoreRow)) { return; }
|
if ($t.parent().hasClass(c.cssIgnoreRow)) { return; }
|
||||||
// make sure to get header cell & not column indexed cell
|
// make sure to get header cell & not column indexed cell
|
||||||
ch = ts.getColumnData( table, c.headers, index, true );
|
ch = ts.getColumnData( c.table, c.headers, index, true );
|
||||||
// save original header content
|
// save original header content
|
||||||
c.headerContent[index] = $t.html();
|
c.headerContent[index] = $t.html();
|
||||||
// if headerTemplate is empty, don't reformat the header cell
|
// if headerTemplate is empty, don't reformat the header cell
|
||||||
@ -480,12 +479,12 @@
|
|||||||
// .last() added in jQuery 1.4; use .filter(':last') to maintain compatibility with jQuery v1.2.6
|
// .last() added in jQuery 1.4; use .filter(':last') to maintain compatibility with jQuery v1.2.6
|
||||||
c.$headerIndexed[indx] = $t.not('.sorter-false').length ? $t.not('.sorter-false').filter(':last') : $t.filter(':last');
|
c.$headerIndexed[indx] = $t.not('.sorter-false').length ? $t.not('.sorter-false').filter(':last') : $t.filter(':last');
|
||||||
}
|
}
|
||||||
$(table).find(c.selectorHeaders).attr({
|
c.$table.find(c.selectorHeaders).attr({
|
||||||
scope: 'col',
|
scope: 'col',
|
||||||
role : 'columnheader'
|
role : 'columnheader'
|
||||||
});
|
});
|
||||||
// enable/disable sorting
|
// enable/disable sorting
|
||||||
updateHeader(table);
|
updateHeader(c.table);
|
||||||
if (c.debug) {
|
if (c.debug) {
|
||||||
console.log( 'Built headers:' + ts.benchmark( time ) );
|
console.log( 'Built headers:' + ts.benchmark( time ) );
|
||||||
console.log( c.$headers );
|
console.log( c.$headers );
|
||||||
@ -851,8 +850,9 @@
|
|||||||
function bindMethods( table ){
|
function bindMethods( table ){
|
||||||
var c = table.config,
|
var c = table.config,
|
||||||
$table = c.$table,
|
$table = c.$table,
|
||||||
events = ( 'sortReset update updateRows updateCell updateAll addRows updateComplete sorton appendCache ' +
|
events = ( 'sortReset update updateRows updateAll updateHeaders addRows updateCell updateComplete ' +
|
||||||
'updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave ' ).split( ' ' )
|
'sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup ' +
|
||||||
|
'mouseleave ' ).split( ' ' )
|
||||||
.join( c.namespace + ' ' );
|
.join( c.namespace + ' ' );
|
||||||
// apply easy methods that trigger bound events
|
// apply easy methods that trigger bound events
|
||||||
$table
|
$table
|
||||||
@ -870,6 +870,10 @@
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
ts.update( this.config, resort, callback );
|
ts.update( this.config, resort, callback );
|
||||||
})
|
})
|
||||||
|
.bind( 'updateHeaders' + c.namespace, function( e, callback ) {
|
||||||
|
e.stopPropagation();
|
||||||
|
ts.updateHeaders( this.config, callback );
|
||||||
|
})
|
||||||
.bind( 'updateCell' + c.namespace, function(e, cell, resort, callback ) {
|
.bind( 'updateCell' + c.namespace, function(e, cell, resort, callback ) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
ts.updateCell( this.config, cell, resort, callback );
|
ts.updateCell( this.config, cell, resort, callback );
|
||||||
@ -1016,7 +1020,7 @@
|
|||||||
// change textExtraction via data-attribute
|
// change textExtraction via data-attribute
|
||||||
c.textExtraction = c.$table.attr('data-text-extraction') || c.textExtraction || 'basic';
|
c.textExtraction = c.$table.attr('data-text-extraction') || c.textExtraction || 'basic';
|
||||||
// build headers
|
// build headers
|
||||||
buildHeaders(table);
|
buildHeaders( c );
|
||||||
// fixate columns if the users supplies the fixedWidth option
|
// fixate columns if the users supplies the fixedWidth option
|
||||||
// do this after theme has been applied
|
// do this after theme has been applied
|
||||||
ts.fixColumnWidth(table);
|
ts.fixColumnWidth(table);
|
||||||
@ -1305,7 +1309,7 @@
|
|||||||
var table = c.table;
|
var table = c.table;
|
||||||
table.isUpdating = true;
|
table.isUpdating = true;
|
||||||
ts.refreshWidgets( table, true, true );
|
ts.refreshWidgets( table, true, true );
|
||||||
buildHeaders( table );
|
buildHeaders( c );
|
||||||
ts.bindEvents( table, c.$headers, true );
|
ts.bindEvents( table, c.$headers, true );
|
||||||
bindMethods( table);
|
bindMethods( table);
|
||||||
commonUpdate( table, resort, callback );
|
commonUpdate( table, resort, callback );
|
||||||
@ -1319,6 +1323,14 @@
|
|||||||
commonUpdate( table, resort, callback );
|
commonUpdate( table, resort, callback );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// simple header update - see #989
|
||||||
|
ts.updateHeaders = function( c, callback ) {
|
||||||
|
c.table.isUpdating = true;
|
||||||
|
buildHeaders( c );
|
||||||
|
ts.bindEvents( c.table, c.$headers, true );
|
||||||
|
resortComplete( c, callback );
|
||||||
|
};
|
||||||
|
|
||||||
ts.updateCell = function( c, cell, resort, callback ) {
|
ts.updateCell = function( c, cell, resort, callback ) {
|
||||||
c.table.isUpdating = true;
|
c.table.isUpdating = true;
|
||||||
c.$table.find( c.selectorRemove ).remove();
|
c.$table.find( c.selectorRemove ).remove();
|
||||||
@ -1352,10 +1364,7 @@
|
|||||||
} else {
|
} else {
|
||||||
// don't reapply widgets is resort is false, just in case it causes
|
// don't reapply widgets is resort is false, just in case it causes
|
||||||
// problems with element focus
|
// problems with element focus
|
||||||
if ( $.isFunction( callback ) ) {
|
resortComplete( c, callback );
|
||||||
callback( table );
|
|
||||||
}
|
|
||||||
c.$table.trigger( 'updateComplete', c.table );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -1536,8 +1545,9 @@
|
|||||||
// remove widget added rows, just in case
|
// remove widget added rows, just in case
|
||||||
$h.find('tr').not($r).remove();
|
$h.find('tr').not($r).remove();
|
||||||
// disable tablesorter
|
// disable tablesorter
|
||||||
events = 'sortReset update updateAll updateRows updateCell addRows updateComplete sorton appendCache updateCache ' +
|
events = 'sortReset update updateRows updateAll updateHeaders updateCell addRows updateComplete sorton ' +
|
||||||
'applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave keypress sortBegin sortEnd resetToLoadState '.split(' ')
|
'appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave keypress ' +
|
||||||
|
'sortBegin sortEnd resetToLoadState '.split(' ')
|
||||||
.join(c.namespace + ' ');
|
.join(c.namespace + ' ');
|
||||||
$t
|
$t
|
||||||
.removeData('tablesorter')
|
.removeData('tablesorter')
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀▀██
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀▀██
|
||||||
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
|
||||||
*/
|
*/
|
||||||
/*! tablesorter (FORK) - updated 08-16-2015 (v2.22.5)*/
|
/*! tablesorter (FORK) - updated 08-17-2015 (v2.22.5)*/
|
||||||
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
||||||
(function(factory) {
|
(function(factory) {
|
||||||
if (typeof define === 'function' && define.amd) {
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
<table id="table1" class="tester" data-text-extraction="basic">
|
<table id="table1" class="tester" data-text-extraction="basic">
|
||||||
<thead>
|
<thead>
|
||||||
<tr><th class="{sortValue:'zzz', poe:'nevermore'}">test-head</th><th>num</th></tr>
|
<tr><th class="{sortValue:'zzz', poe:'nevermore'}">test-head</th><th>xnum</th></tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tfoot>
|
<tfoot>
|
||||||
<tr><th>test-foot</th><th>txt</th></tr>
|
<tr><th>test-foot</th><th>txt</th></tr>
|
||||||
|
@ -656,7 +656,7 @@ jQuery(function($){
|
|||||||
test update methods
|
test update methods
|
||||||
************************************************/
|
************************************************/
|
||||||
QUnit.test( 'parser cache; update methods & callbacks', function(assert) {
|
QUnit.test( 'parser cache; update methods & callbacks', function(assert) {
|
||||||
assert.expect(11);
|
assert.expect(12);
|
||||||
var oldColMax;
|
var oldColMax;
|
||||||
c1.ignoreCase = true;
|
c1.ignoreCase = true;
|
||||||
// updateAll
|
// updateAll
|
||||||
@ -671,15 +671,29 @@ jQuery(function($){
|
|||||||
.trigger('updateAll', [false, function(){
|
.trigger('updateAll', [false, function(){
|
||||||
updateCallback++;
|
updateCallback++;
|
||||||
var nw = $table1.find('th:eq(1)')[0],
|
var nw = $table1.find('th:eq(1)')[0],
|
||||||
|
ht = c1.$headers.eq(1).text() === 'num'
|
||||||
hc = c1.headerContent[1] === 'num',
|
hc = c1.headerContent[1] === 'num',
|
||||||
hd = c1.$headers[1] === nw,
|
hd = c1.$headers[1] === nw,
|
||||||
hl = c1.headerList[1] === nw,
|
hl = c1.headerList[1] === nw,
|
||||||
p1 = c1.parsers[1].id === 'digit';
|
p1 = c1.parsers[1].id === 'digit';
|
||||||
assert.equal(hc && hd && hl && p1, true, 'testing header cache: updateAll - thead');
|
assert.equal(ht && hc && hd && hl && p1, true, 'testing header cache: updateAll - thead');
|
||||||
assert.cacheCompare( table1, 'all', [ 'test3', 1, 'test2', 2, 'test1', 3,
|
assert.cacheCompare( table1, 'all', [ 'test3', 1, 'test2', 2, 'test1', 3,
|
||||||
'testc', 4, 'testb', 5, 'testa', 6, '', 0 ], 'updateAll - tbody' );
|
'testc', 4, 'testb', 5, 'testa', 6, '', 0 ], 'updateAll - tbody' );
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
|
// updateHeader v2.22.6
|
||||||
|
$table1
|
||||||
|
.find('th:eq(1)').html('x-num').end()
|
||||||
|
.trigger('updateHeaders', function(){
|
||||||
|
updateCallback++;
|
||||||
|
var nw = $table1.find('th:eq(1)')[0],
|
||||||
|
ht = c1.$headers.eq(1).text() === 'x-num',
|
||||||
|
hc = c1.headerContent[1] === 'x-num',
|
||||||
|
hd = c1.$headers[1] === nw,
|
||||||
|
hl = c1.headerList[1] === nw;
|
||||||
|
assert.equal(ht && hc && hd && hl, true, 'testing header cache: updateHeaders');
|
||||||
|
});
|
||||||
|
|
||||||
// addRows
|
// addRows
|
||||||
t = $('<tr class="temp"><td>testd</td><td>7</td></tr>');
|
t = $('<tr class="temp"><td>testd</td><td>7</td></tr>');
|
||||||
$table1.find('tbody:last').prepend(t);
|
$table1.find('tbody:last').prepend(t);
|
||||||
|
Loading…
Reference in New Issue
Block a user