-
-
Notifications
You must be signed in to change notification settings - Fork 271
Expand file tree
/
Copy pathtoggle_class.ts
More file actions
37 lines (22 loc) · 680 Bytes
/
toggle_class.ts
File metadata and controls
37 lines (22 loc) · 680 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// @require core/cash.ts
// @require core/each.ts
// @require core/get_split_values.ts
// @require core/type_checking.ts
// @require collection/each.ts
interface Cash {
toggleClass ( classes: string, force?: boolean ): this;
}
fn.toggleClass = function ( this: Cash, cls: string, force?: boolean ) {
const classes = getSplitValues ( cls );
const isForce = !isUndefined ( force );
return each ( this, ( i, ele ) => {
if ( !isElement ( ele ) ) return;
each ( classes, ( i, c ) => {
if ( isForce ) {
force ? ele.classList.add ( c ) : ele.classList.remove ( c );
} else {
ele.classList.toggle ( c );
}
});
});
};