Skip to content

Commit

Permalink
feat: add toggleClass method (#53)
Browse files Browse the repository at this point in the history
* add toggleClass method

* add toggleClass to README.md

* remove force argument from toggleClass
  • Loading branch information
mctep authored and jquense committed Nov 30, 2018
1 parent 71fd009 commit 4cb2993
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 2 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ Each level of the module can be required as a whole or you can drill down for a
- `addClass(element, className)`
- `removeClass(element, className)`
- `hasClass(element, className)`
- `toggleClass(element, className)`
- `style(element, propName, [value])` or `style(element, objectOfPropValues)`
+ `removeStyle(element, styleName)`
+ `getComputedStyle(element)` -> `getPropertyValue(name)`
Expand Down
5 changes: 3 additions & 2 deletions src/class/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import addClass from './addClass';
import removeClass from './removeClass';
import hasClass from './hasClass';
import toggleClass from './toggleClass';

export { addClass, removeClass, hasClass }
export default { addClass, removeClass, hasClass }
export { addClass, removeClass, hasClass, toggleClass }
export default { addClass, removeClass, hasClass, toggleClass }
12 changes: 12 additions & 0 deletions src/class/toggleClass.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import hasClass from './hasClass'
import removeClass from './removeClass'
import addClass from './addClass'

export default function toggleClass(element, className){
if (element.classList)
element.classList.toggle(className);
else if (hasClass(element, className))
removeClass(element, className)
else
addClass(element, className)
}
10 changes: 10 additions & 0 deletions test/class.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,14 @@ describe('Class helpers', () => {
expect(cls.hasClass(document.getElementById('item-2'), 'test-class')).to.equal(true)
expect(cls.hasClass(document.getElementById('item-1'), 'test-class')).to.equal(false)
})

it('should toggle class', () => {
var el = document.getElementById('item-1')
removeProperty('classList', el)

cls.toggleClass(el, 'test-class')
expect(cls.hasClass(el, 'test-class')).to.equal(true)
cls.toggleClass(el, 'test-class')
expect(cls.hasClass(el, 'test-class')).to.equal(false)
})
})

0 comments on commit 4cb2993

Please sign in to comment.