ZebraTable
ZebraTable is a MooTools plugin that allows you add simple mouseenter/mouseout and click table row highlighting.
Download in Package Debut Article Example Usage
Plugin Code (Version 1.0)
var ZebraTable = new Class({ /* implements */ Implements: [Options], /* options */ options: { elements: 'table.list-table', cssEven: 'even', cssOdd: 'odd', cssHighlight: 'highlight', cssMouseEnter: 'mo' }, /* initialization */ initialize: function(options) { /* set options */ this.setOptions(options); /* zebra-ize! */ $$(this.options.elements).each(function(table) { this.zebraize(table); },this); }, /* a method that does whatever you want */ zebraize: function(table) { /* for every row in this table... */ table.getElements('tr').each(function(tr,i) { /* check to see if the row has th's if so, leave it alone if not, move on */ if(tr.getFirst().get('tag') != 'th') { /* set the class for this based on odd/even */ var self = this.options, klass = i % 2 ? self.even : self.odd; /* start the events! */ tr.addClass(klass).addEvents({ /* mouseenter */ mouseenter: function () { if(!tr.hasClass(self.cssHighlight)) tr.addClass(self.cssMouseEnter).removeClass(klass); }, /* mouseleave */ mouseleave: function () { if(!tr.hasClass(self.cssHighlight)) tr.removeClass(self.cssMouseEnter).addClass(klass); }, /* click */ click: function() { if(!tr.hasClass(options.cssHighlight)) tr.removeClass(options.cssMouseEnter).addClass(options.cssHighlight); else tr.addClass(options.cssMouseEnter).removeClass(options.cssHighlight); } }); } },this); } });
Options
- elements: (defaults to "table.list-table") the tables to highlight upon initialization.
- cssEven: (defaults to "even") the CSS class for even rows
- cssOdd: (defaults to "odd") the CSS class for odd rows
- cssHighlight: (defaults to "highlight") the CSS class that gets toggled upon click
- cssMouseEnter: (defaults to "highlight") the CSS class that gets toggled upon mouseenter and mouseleave
Code Revisions & Bug Fixes
None.