1 | /*! |
||
2 | * classie - class helper functions |
||
3 | * from bonzo https://github.com/ded/bonzo |
||
4 | * |
||
5 | * classie.has( elem, 'my-class' ) -> true/false |
||
6 | * classie.add( elem, 'my-new-class' ) |
||
7 | * classie.remove( elem, 'my-unwanted-class' ) |
||
8 | * classie.toggle( elem, 'my-class' ) |
||
9 | */ |
||
10 | |||
11 | /*jshint browser: true, strict: true, undef: true */ |
||
12 | /*global define: false */ |
||
13 | |||
14 | ( function( window ) { |
||
15 | |||
16 | 'use strict'; |
||
17 | |||
18 | // class helper functions from bonzo https://github.com/ded/bonzo |
||
19 | |||
20 | function classReg( className ) { |
||
21 | return new RegExp("(^|\\s+)" + className + "(\\s+|$)"); |
||
22 | } |
||
23 | |||
24 | // classList support for class management |
||
25 | // altho to be fair, the api sucks because it won't accept multiple classes at once |
||
26 | var hasClass, addClass, removeClass; |
||
27 | |||
28 | if ( 'classList' in document.documentElement ) { |
||
29 | hasClass = function( elem, c ) { |
||
30 | return elem.classList.contains( c ); |
||
31 | }; |
||
32 | addClass = function( elem, c ) { |
||
33 | elem.classList.add( c ); |
||
34 | }; |
||
35 | removeClass = function( elem, c ) { |
||
36 | elem.classList.remove( c ); |
||
37 | }; |
||
38 | } |
||
39 | else { |
||
40 | hasClass = function( elem, c ) { |
||
41 | return classReg( c ).test( elem.className ); |
||
42 | }; |
||
43 | addClass = function( elem, c ) { |
||
44 | if ( !hasClass( elem, c ) ) { |
||
45 | elem.className = elem.className + ' ' + c; |
||
46 | } |
||
47 | }; |
||
48 | removeClass = function( elem, c ) { |
||
49 | elem.className = elem.className.replace( classReg( c ), ' ' ); |
||
50 | }; |
||
51 | } |
||
52 | |||
53 | function toggleClass( elem, c ) { |
||
54 | var fn = hasClass( elem, c ) ? removeClass : addClass; |
||
55 | fn( elem, c ); |
||
56 | } |
||
57 | |||
58 | var classie = { |
||
59 | // full names |
||
60 | hasClass: hasClass, |
||
61 | addClass: addClass, |
||
62 | removeClass: removeClass, |
||
63 | toggleClass: toggleClass, |
||
64 | // short names |
||
65 | has: hasClass, |
||
66 | add: addClass, |
||
67 | remove: removeClass, |
||
68 | toggle: toggleClass |
||
69 | }; |
||
70 | |||
71 | // transport |
||
72 | if ( typeof define === 'function' && define.amd ) { |
||
0 ignored issues
–
show
|
|||
73 | // AMD |
||
74 | define( classie ); |
||
75 | } else { |
||
76 | // browser global |
||
77 | window.classie = classie; |
||
78 | } |
||
79 | |||
80 | })( window ); |
||
81 |
This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.
To learn more about declaring variables in Javascript, see the MDN.