tablesorter is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.
- See the full documentation.
- All of the original document pages have been included.
- Information from my blog post on undocumented options and lots of new demos have also been included.
- Change log moved from included text file into the wiki documentation.
- Basic alpha-numeric sort Demo.
- Links to demo pages can be found within the main documentation.
- More demos & playgrounds - updated in the wiki pages.
- Multi-column alphanumeric sorting and filtering.
- Multi-tbody sorting - see the options table on the main document page.
- Supports Bootstrap v2 and 3
- Parsers for sorting text, alphanumeric text, URIs, integers, currency, floats, IP addresses, dates (ISO, long and short formats) & time. Add your own easily.
- Inline editing - see demo
- Support for ROWSPAN and COLSPAN on TH elements.
- Support secondary "hidden" sorting (e.g., maintain alphabetical sort when sorting on other criteria).
- Extensibility via widget system.
- Cross-browser: IE 6.0+, FF 2+, Safari 2.0+, Opera 9.0+, Chrome 5.0+.
- Small code size, starting at 25K minified
- Works with jQuery 1.2.6+ (jQuery 1.4.1+ needed with some widgets).
- Works with jQuery 1.9+ ($.browser.msie was removed; needed in the original version).
- Copyright (c) 2007 Christian Bach.
- Original examples and docs at: http://tablesorter.com.
- Dual licensed under the MIT and GPL licenses.
- Big shout-out to Nick Craver for getting rid of the
eval()
function that was previously needed for multi-column sorting. - Big thanks to thezoggy for helping with code, themes and providing valuable feedback.
- Big thanks to ThsSin- for taking over for a while and also providing valuable feedback.
- Also extra thanks to christhomas and Lynesth for help with code.
- And, of course thanks to everyone else that has contributed, and continues to contribute to this forked project!
View the complete listing here.
Version 2.15.7 (1/25/2014)
-
Core
- Minor natural sort algorithm optimization
- Added
namespace
which should contain a unique namespace for each table; it is used when binding to event listeners.
-
Build table widget
- Removed inappropriate empty table console message when initializing.
- build table widget documentation update (includes
<head>
scripts & css) - Fixed nested accordions
-
Column selector widget
- Setting the
columnSelector_saveColumns
option totrue
now saves the "auto" state. Fixes issue #517.
- Setting the
-
Filter widget
- Use the new
namespace
option to use with event listeners. Fixes issue #535.
- Use the new
-
headerTitles widget
- Sorry for all of these breaking changes, I should have left this widget in beta.
- The
headerTitle_prefix
,headerTitle_text
,headerTitle_numeric
options has been replaced, in lieu of the new ouput options; sorry for no deprecation notice. - Added
headerTitle_useAria
,headerTitle_tooltip
,headerTitle_output_sorted
,headerTitle_output_unsorted
,headerTitle_output_nosort
,headerTitle_cur_text
,headerTitle_cur_numeric
,headerTitle_nxt_text
,headerTitle_nxt_numeric
,headerTitle_type
&headerTitle_callback
options. See the headerTitles widget demo for more details. - Added
"refreshHeaderTitle"
method to force the widget to update.
Version 2.15.6 (3/7/2014)
-
Doc
- Added docs for
$.tablesorter.language
which contains the text used in thearia-label
for the header - Update
isValueInArray
&sortAppend
docs.
- Added docs for
-
Core
- Destroy now unbinds the
updateCache
method properly - Update
$.tablesorter.isValueInArray
function &sortAppend
option. Fixes issue #523. - All test dates are now time zone & DST independent. Fixes issue #516.
- Added tests for
sortForce
,sortAppend
,sortMultiSortKey
andsortResetKey
. - Cache natural sort regex.
- Date parsers now return the original cell text instead of an empty string when encountering invalid dates. Sort of fixes issue #531.
- Event fixes:
- Sort events will now only show when the table is being sorted; previously when updating an unsorted table, sort events would fire.
- The
updateComplete
event now fires after every triggered update (update
,updateRows
,updateAll
,updateCell
&addRows
) - Updated pager to correctly trigger the
updateComplete
event when using ajax. - Added unit tests to ensure these events fire on an empty table.
- Fixes issue #532
- Destroy now unbinds the
-
ColumnSelector widget
- Make column disable, visible & invisible methods consistent. Fixes issue #519
-
Filter widget
- Preset filter searches (set by
data-value
on the header) work again. Fixes issues #511 & #525. - Add note to docs about adding a placeholder. Fixes issue #522.
- Filter build select function no longer causes a javascript error on empty tables. Fixes issue #528.
- Preset filter searches (set by
-
Grouping widget
- The
collapsed
option once again shows the group headers. Fixes issues #514 & 533 - Add
group_saveGroups
&group_saveReset
options:- The
group_saveGroups
option (true
by default) saves the group name of any collapsed groups (requiresgroup_collapsible
to betrue
) - The
group_saveReset
option (null
by default) contains a jQuery selector string or jQuery object pointing to an element to be used to clear the saved groups. - Both of these options require the storage utility script contained within the
jquery.tablesorter.widgets.js
file. - Fullfils feature request of issue #514.
- The
- Added details about using regular expressions within the
group_separator
option.
- The
-
Header Titles widget (headerTitles)
- New widget which adds the current sort to the header title attribute.
- It distinguishes between a text and numeric sort and includes the current sort direction
- A prefix can be included.
- By default, an ascending sort shows either "A - Z" or "0 - 9", or "Z - A" or "9 - 0" for descending sorts.
- Note that date columns will show as numeric
- Fixes issue #529.
-
Pager (addon & widget)
- Ensure empty array
[]
and array of empty strings['', '', '']
evaluate as the same when checking if the filters have changed. Fixes issue #202 (again). - Compare
totalRows
vs.totalPages
when preventing an ajax call. - Changes to make the
updateComplete
event fire, but because of the asynchronous nature of ajax, it fires before anysortEnd
events. It may take some more work to resolve this, if it becomes a concern. - Attempted to fix pager row count issue. See issue #455.
- Ensure empty array
-
Miscellaneous
- Pager custom controls (beta) now shows no pages on a single page. Fixes issue #518
- Increase Bootstrap 3 theme css specificity. See issue #515
- Checkbox parser no longer causes a js error when a checkbox doesn't exist.
Version 2.15.5 (2/23/2014)
- Pager widget now initializes properly when using ajax. Fixes issue #510.
Version 2.15.4 (2/22/2014)
- Add "updateCache" method
- This method updates the parsers, if undefined, then updates the internal cache.
- Used by the pager (addon & widget) to update the internal cache after an ajax update.
- Pager (addon & widget)
- Fixed several undefined variable javascript errors. Fixes issue #509.
- Fixed an issue with recursion in the pager widget - removed several unnecessary "applyWidget" methods.
- Now uses the "updateCache" method after the table is rendered using ajax.
Version 2.15.3 (2/21/2014)
- Stickyheaders
- Sorting works again. Fixes issue #508.
- Table no longer scrolls to the top after initializing a sort from the sticky header.