Package Exports
- tablesorter
- tablesorter/dist/js/jquery.tablesorter
- tablesorter/dist/js/widgets/widget-resizable.min.js
- tablesorter/dist/js/widgets/widget-uitheme.min.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tablesorter) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
tablesorter (FORK) 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. This forked version adds lots of new enhancements including: alphanumeric sorting, pager callback functons, multiple widgets providing column styling, ui theme application, sticky headers, column filters and resizer, as well as extended documentation with a lot more demos.
Notice!
- Because of the change to the internal cache, the tablesorter v2.16+ core, filter widget and pager (both plugin & widget) will only work with the same version or newer files.
Documentation
- 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.
Demos
- Basic alpha-numeric sort Demo.
- Links to demo pages can be found within the main documentation.
- More demos & playgrounds - updated in the wiki pages.
Features
- 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).
Licensing
- Copyright (c) 2007 Christian Bach.
- Original examples and docs at: http://tablesorter.com.
- Dual licensed under the MIT and GPL licenses.
Download
- Get all files
- Use bower:
bower install jquery.tablesorter - Use node.js:
npm install tablesorter - CDNJS: https://cdnjs.com/libraries/jquery.tablesorter
Related Projects
- Plugin for Rails. Maintained by themilkman.
- Bootsole (OOP templating engine using tablesorter) by alexweissman.
Contributing
If you would like to contribute, please...
- Fork.
- Make changes in a branch & add unit tests.
- Run
grunt test(if qunit fails, run it again - it's fickle). - Create a pull request.
Special Thanks
- 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.
- Thanks to prijutme4ty for numerous contributions!
- 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!
Questions?
- Check the FAQ page.
- Search the main documentation (click the menu button in the upper left corner).
- Search the issues to see if the question or problem has been brought up before, and hopefully resolved.
- If someone is available, ask your question in the
#tablesorterIRC channel at freenode.net. - Ask your question at Stackoverflow using a tablesorter tag.
- Please don't open a new issue unless it really is an issue with the plugin, or a feature request. Thanks!
Recent Changes
View the complete change log here.
Version 2.22.0 (5/17/2015)
- Docs
- Lots of minor version updates, spelling corrections & clarifications in wording.
- Update box-sizing styles (ref).
- Update
characterEquivalentscross-reference to correctly match the code of the plugin. - Add Build table widget example resulting HTML for the json example.
- Grunt build
package.jsonfiles now points to the entire "dist" folder. See issue #881.- Add
grunt quickbuild to only update widget & parser files; it skips updating the dates in the widgets & combined files.
- Core
- The
isDigitfunction now reportsfalseon empty strings. See issue #865. - Add pointer events options (
pointerClick,pointerDownandpointerUp). Fixes issue #885. - Prevent js error when using the
computeColumnIndexfunction on empty tables (used by the math widget). Fixes issue #889. - Prevent js error when
sortListincludes an out-of-bounds column. Fixes issue #908. - Centralize extractor & parser code; this code is used by the main build cache loop and the "addRows" & "updateCell" methods.
- Child row content is now properly stored in row data as an array of arrays.
- Add "o" to
sortLocaleComparereplacement table & update docs. - Replace all instances of using jQuery each with plain javascript. Fixes issue #827.
- The
- Editable
- Modify
trimContentoption & use HTML to modify text. Fixes issue #886. - Fix
selectAll& changetbodymouseleave to complete editing totheadmouseenter. Fixes issue #848. - Only make table cell child div/span contenteditable. See issue #900.
- Add remove widget code & allow dynamic updating if the "no-edit" class changes. Fixes issue #900.
- Modify
- Filter
- Regex filter searches now cache the created regex object for each query to optimize speed & a regex search now properly uses case-sensitive content
- Add
dataparameter tofilter_functions. This is the same data used by the filter search type functions. See issue #891. - Any match searches which target specific columns will no longer save each filter to its respective column; see "AnyMatch Searches" documentation.
- Operator filter searchs now ignore empty strings (because
"" < 10istrue). - Clean up
parseFilterfunction. - Add
filter_childByColumnoption. - Code cleanup - added a bunch of whitespace & forced line wraps at around 120.
- Prevent setFilter function from setting the same filters after an update. Fixes issues #903 & #733.
- Grouping
- Add keyboard accessibility to group headers. See issue #260.
- Math
- Fix issues with
isNaN('') // false. See issue #873. - Reapply column indexing after updates & prevent js error on empty tables. Fixes issue #889.
- Reduce update time to 20ms. See issue #898.
- Exclude ignored cells even if
math_ignoreis empty. Fixes issue #896.
- Fix issues with
- Output
- Add BOM back to downloaded file. Fixes issue #862.
- Add
output_hiddenColumnsoption. Fixes issue #869. - Add known issues section about downloading in Safari.
- Pager (addon & widget)
- Replace all instances of using jQuery each with plain javascript. Fixes issue #827.
- Resizable
- Refreshing the widget will now preserve the storage. See issue #874.
- Scroller
- Set
overflow-xauto & apply border-box to scroller. See issue #135. - Remove
pointer-events: nonefrom fixed column. See issue #878. - Hide fixed column scrollbar in IE9 & older. See issue #135.
- Update
pointer-eventsand tabbing accessibility. See issue #135. setFixedColumnSizenow properly updates with no set size.- Add
scroller_addFixedOverlay- When
true, a fixed column overlay is added for additional styling. See issue #887. - It includes css
pointer-eventsset tononeto allow interaction with elements underneath; make sure your browser supports it!
- When
- Fix selector issue in the remove function.
- Properly refresh column size after an update. Fixes the third part of issue #906.
- Set
- Parsers
- Add "inputs-numeric" parser. Fixes issue #888.
- Add jQuery Globalize date & number parsers.
- "namedNumbers" parser: ignores adjacent puncutation. Fixes issue #890.
- input-select parsers:
- Clean up & add event namespaces.
- Now return an empty string if the value is empty; previously, it would return the cell text when the value was empty.
- Network "MAC" parser:
- Return the original string if the address is grossly invalid. Fixes issue #895.
- No longer auto-detect as iPv6. See issue #895.
- Themes
- Declare font-weight separately. Thanks nikolas (pull #866)!
- Update Boostrap v2.x theme, and add a Bootstrap v2.x demo.
Version 2.21.5 (4/8/2015)
- Filter
- Cache main loop variables - speed enhancement.
- Allow setting
filter_selectSourcealong withfilter_functions(demo).
- Resizable
- Integrate with columnSelector. See issue #859.
- Prevent javascript error.
- Resizable handles now properly align when the table is within a layout with margins. Fixes issue #864.
- Scroller
- Apply on initialization. Fixes issue #860.
Version 2.21.4 (3/28/2015)
- Core
- Add a utility
$.tablesorter.getColumnText()function.- This function will provide a centralized method of obtaining column data (raw & parsed text from cells) and allow processing cells.
- I plan to update all widgets that need to interact or obtain column data to use this function in v2.22.0.
- Add a utility
- Build
- The build process now includes selected parsers (added
parsersoption to build json). - A new
jquery.tablesorter.combined.jsfile is created which will contain the core plugin along with all selected widgets & parsers; a default build does not have any selected parsers. - This will work around, but not resolve, issue #855.
- The build process now includes selected parsers (added
- Extras
- Update
semver.js&semver-mod.jsto v4.3.3.
- Update