Followup r99923: spaces->tabs, add @embed
[lhc/web/wiklou.git] / resources / jquery / jquery.checkboxShiftClick.js
1 /**
2 * jQuery checkboxShiftClick
3 *
4 * This will enable checkboxes to be checked or unchecked in a row by clicking one, holding shift and clicking another one
5 *
6 * @author Krinkle <krinklemail@gmail.com>
7 * @license GPL v2
8 */
9 ( function( $ ) {
10 $.fn.checkboxShiftClick = function( text ) {
11 var prevCheckbox = null;
12 var $box = this;
13 // When our boxes are clicked..
14 $box.click( function( e ) {
15 // And one has been clicked before...
16 if ( prevCheckbox !== null && e.shiftKey ) {
17 // Check or uncheck this one and all in-between checkboxes
18 $box.slice(
19 Math.min( $box.index( prevCheckbox ), $box.index( e.target ) ),
20 Math.max( $box.index( prevCheckbox ), $box.index( e.target ) ) + 1
21 ).prop( 'checked', e.target.checked ? true : false );
22 }
23 // Either way, update the prevCheckbox variable to the one clicked now
24 prevCheckbox = e.target;
25 } );
26 return $box;
27 };
28 } )( jQuery );