Skip to content

Commit 787d3cb

Browse files
committed
Merge branch 'refs/heads/boxlist' into wip
2 parents e9dde7f + c083512 commit 787d3cb

1 file changed

Lines changed: 17 additions & 8 deletions

File tree

10 - Hold Shift and Check Checkboxes/index-START.html

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@
107107
var Api = (function () {
108108
// polyfill for jQuery
109109
var $ = (sel) => Array.from(document.querySelectorAll(sel));
110-
var boxlist = $('.item input');
110+
var boxlist = $();
111111
var indexes = {}; // memory for box clicks
112112
var self;
113113

@@ -118,27 +118,36 @@
118118
arr.forEach((el) => el.checked = bool);
119119
}
120120

121-
function revIndexes(evt, num) {
121+
function revIndexes(evt) {
122+
var num = boxlist.indexOf(evt.target);
122123
indexes.last = evt.shiftKey ? indexes.next : num;
123124
indexes.next = num;
124125
setChecked(evt.target.checked); // replicate this state
125126
}
126127

127-
function doBinding(arr) {
128-
arr.forEach((ele, idx) => {
129-
ele.addEventListener('click', (evt) => revIndexes(evt, idx));
130-
});
128+
function detach() {
129+
boxlist.forEach((ele) => ele.removeEventListener('click', revIndexes));
130+
boxlist.splice(0, Infinity);
131+
return self;
132+
}
133+
134+
function doBinding(arg) {
135+
detach(); // clean up
136+
var arr = arg.split ? $(arg) : arg; // query if string
137+
boxlist.push.apply(boxlist, arr); // swap in new boxlist
138+
boxlist.forEach((ele) => ele.addEventListener('click', revIndexes));
131139
return self;
132140
}
133141

134142
self = {
135143
init: doBinding,
144+
select: $,
136145
boxlist, indexes,
137146
};
138147

139-
return self.init(boxlist);
148+
return doBinding('.item input');
140149
}());
141-
150+
console.log(Api);
142151
</script>
143152
</body>
144153
</html>

0 commit comments

Comments
 (0)