Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Github fork of Christian Bach's tablesorter plugin: http://tablesorter.com

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
addons/pager
css
docs
js
README.markdown
changelog.txt
index.html
package.json

README.markdown

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

Demos

Features

  • Multi-column sorting.
  • Parsers for sorting text, alphanumeric text, URIs, integers, currency, floats, IP addresses, dates (ISO, long and short formats) & time. Add your own easily
  • 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+.
  • Small code size.
  • Works with jQuery 1.2.3+

Documentation

Included all original document pages with updates from my blog post on undocumented options.

Licensing

Change Log

View the complete listing here.

Version 2.0.28 (2012-2-1)

  • Added a new function to widgets called "init" which is called upon initialization, before any of the widgets are applied.

    • I added it to allow the "saveSort" widget to get the saved sort data (localStorage or cookie) before the initial sort was applied.
    • The "saveSort" widget is still compatible with the original tablesorter, but the original version will call all of the widgets twice on initialization, if using the "saveSort" widget.
    • New add widget format is as follows:

        $.tablesorter.addWidget({
          id: 'myWidget',
          init: function(table, allWidgets, thisWidget){
            // widget initialization code - this is only run ONCE
            // but in this example I call the format function because
            // I want to keep it backwards compatible with the original tablesorter
            thisWidget.format(table, true);
          },
          format: function(table, initFlag) {
            // widget code to apply to the table AFTER EACH SORT
            // the initFlag is true when format is called for the first time, but
            // only if it is called from the init function
          }
        });

Version 2.0.27 (2012-1-31)

  • Added sortReset option
    • Setting this option to true, allows you to click on the header a third time to clear the sort
    • Clearing the sort DOES NOT return the table to it's initial unsorted state.
  • Added saveSort widget
    • This widget will save the last sort to local storage, and will fallback to cookies.
    • The widget does use the JSON.stringify function which is not fully supported (IE7), so if you plan to support it and use this widget, please include this JSON library.
  • Fixed pager page size not sticking. Fix for issue #24.

Version 2.0.26 (2012-1-30)

  • Widgets should no longer be applied twice when an initial sort direction is added. Fix for issue #21.
  • Modified Green theme:
    • The Green theme sort direction icon is now applied to only the first span it encounters inside the header. The UI theme adds a second span for it's icon.
    • Essentially to fix this demo which allows switching between all of the themes.
  • Modified the UI theme to now add a div that wraps all of the header cell content to allow positioning of the sort direction icon.

Version 2.0.25.2 (2012-1-27)

  • Changed Blue theme to vertically align arrows. Fix for issue #12.
  • Fixed sticky header widget so varing width columns now update when the pager plugin changes pages. Thanks to locationRoura for reporting this issue.

Version 2.0.25.1 (2011-12-15)

  • Fixed disabled column style for the ui theme widget. Thanks to bbbco for the fix in issue #17.

Version 2.0.25 (2011-12-14)

  • The ui theme and sticky header widgets now work together and update the arrow direction. Fix for issue #15.
  • Empty cells with only a tab or space will now sort at the bottom. Thanks to pursual for the fix for issue #16.

Version 2.0.24 (2011-12-12)

  • Modified empty cell sorting to always sort at the bottom. Fix for issue #14.
  • Updated the sticky header widget to line up properly with the UI theme. Fix for issue #13.

Version 2.0.23.5 (2011-12-6)

  • Updated the sticky header widget again to not interfere with the filter widget. Fix for issue #10.

Version 2.0.23.4 (2011-12-6)

  • Updated the sticky header widget to reposition the sticky header when scrolling left. Fix for issue #9.

Version 2.0.23.3 (2011-11-7)

  • Updated the filter widget:
    • Changed filter input from visibility hidden to display none. Fix/enhancement from issue #7.
    • Modified the widget to better work with child rows. Added the widgetFilterChildRows option. Fix for issue #8.
    • When widgetFilterChildRows is true, all child row content is included in the row filtering; if false, the child row content is ignored.
  • Added tableClass to the documents. Apparently I forgot to add it before.
  • Added a note to the filter demo bringing up issue #6.
  • Miscellaneous updates to the documents.

Version 2.0.23.2 (2011-10-28)

  • Fixed pager size & total pages not being retained after destroying, then restoring the pager. Thanks to crush123 for reporting the problem!

Version 2.0.23.1 (2011-10-26)

  • Fixed the pager plugin to prevent errors when initialized on an empty table. Fix for issue #5.
  • Added a Resizable Column widget
    • At this time, this widget allows resizing the column widths from the header.
    • The column widths are not saved, but if I did consider saving the widths to local storage. I just didn't get around to doing it.
    • Demo page added.
  • Reorganized the next demo links, located at the bottom of every demo page, to match the order on the main document page.
Something went wrong with that request. Please try again.