Libraryless. Click here for Pure Java version (3080L/20K).
1 | sS hCheckBoxMultiSelect_v2(O... _) {
|
2 | optPar bool verbose; |
3 | |
4 | ret hscript(replaceDollarVars([[ |
5 | var lastChecked; |
6 | |
7 | $(document).ready(function() {
|
8 | console.log("document ready");
|
9 | $("input[type=checkbox]").click(function(e) {
|
10 | var verbose = $verbose; |
11 | var cls = this.className; |
12 | if (verbose) console.log("cls=" + cls);
|
13 | if (!cls) return; |
14 | |
15 | if (!lastChecked || lastChecked.className != cls) {
|
16 | lastChecked = this; |
17 | return; |
18 | } |
19 | |
20 | var $chkboxes = $('input[type=checkbox].' + cls);
|
21 | |
22 | if (e.shiftKey) {
|
23 | var start = $chkboxes.index(this); |
24 | var end = $chkboxes.index(lastChecked); |
25 | |
26 | // change checkboxes, trigger their change event in case there are handlers installed |
27 | $chkboxes.slice(Math.min(start, end), Math.max(start,end)+1).prop('checked', lastChecked.checked)
|
28 | .each(function(idx, chkbox) {
|
29 | chkbox.dispatchEvent(new Event('change'));
|
30 | }); |
31 | } |
32 | |
33 | lastChecked = this; |
34 | }); |
35 | }); |
36 | ]], +verbose)); |
37 | } |
Began life as a copy of #1008423
download show line numbers debug dex old transpilations
Travelled to 4 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1030223 |
| Snippet name: | hCheckBoxMultiSelect_v2 - works with all checkboxes that have a class |
| Eternal ID of this version: | #1030223/8 |
| Text MD5: | 7dacb06b02a20121d307e09c6e3d985c |
| Transpilation MD5: | 9bbc0860f8fae9a3a22921f9384032b6 |
| Author: | stefan |
| Category: | javax / html |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2020-11-17 14:29:40 |
| Source code size: | 1136 bytes / 37 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 435 / 554 |
| Version history: | 7 change(s) |
| Referenced in: | [show references] |