summaryrefslogtreecommitdiff
path: root/resources/jquery/jquery.checkboxShiftClick.js
diff options
context:
space:
mode:
Diffstat (limited to 'resources/jquery/jquery.checkboxShiftClick.js')
-rw-r--r--resources/jquery/jquery.checkboxShiftClick.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/resources/jquery/jquery.checkboxShiftClick.js b/resources/jquery/jquery.checkboxShiftClick.js
new file mode 100644
index 00000000..b2fcb6ef
--- /dev/null
+++ b/resources/jquery/jquery.checkboxShiftClick.js
@@ -0,0 +1,28 @@
+/**
+ * jQuery checkboxShiftClick
+ *
+ * This will enable checkboxes to be checked or unchecked in a row by clicking one, holding shift and clicking another one
+ *
+ * @author Krinkle <krinklemail@gmail.com>
+ * @license GPL v2
+ */
+( function( $ ) {
+jQuery.fn.checkboxShiftClick = function( text ) {
+ var prevCheckbox = null;
+ var $box = this;
+ // When our boxes are clicked..
+ $box.click(function (e) {
+ // And one has been clicked before...
+ if (prevCheckbox !== null && e.shiftKey) {
+ // Check or uncheck this one and all in-between checkboxes
+ $box.slice(
+ Math.min($box.index(prevCheckbox), $box.index(e.target)),
+ Math.max($box.index(prevCheckbox), $box.index(e.target)) + 1
+ ).attr({checked: e.target.checked ? 'checked' : ''});
+ }
+ // Either way, update the prevCheckbox variable to the one clicked now
+ prevCheckbox = e.target;
+ });
+ return $box;
+};
+} )( jQuery ); \ No newline at end of file