diff options
author | Sam Potts <sam@potts.es> | 2018-08-14 11:17:27 +1000 |
---|---|---|
committer | Sam Potts <sam@potts.es> | 2018-08-14 11:17:27 +1000 |
commit | 7a43649c13e54b15244f5e7ddaeee8d676a3d5e3 (patch) | |
tree | b3a86821ffdbd38a4e5d1be6cd3d4d6ed89b9def /src/js/controls.js | |
parent | 525bbf313ef31964489faf90cda1be6077fc9d6e (diff) | |
download | plyr-7a43649c13e54b15244f5e7ddaeee8d676a3d5e3.tar.lz plyr-7a43649c13e54b15244f5e7ddaeee8d676a3d5e3.tar.xz plyr-7a43649c13e54b15244f5e7ddaeee8d676a3d5e3.zip |
Fix play/pause button state
Diffstat (limited to 'src/js/controls.js')
-rw-r--r-- | src/js/controls.js | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/js/controls.js b/src/js/controls.js index c04ba783..35eba971 100644 --- a/src/js/controls.js +++ b/src/js/controls.js @@ -1610,20 +1610,28 @@ const controls = { // Add pressed property to buttons if (!is.empty(this.elements.buttons)) { + const addProperty = button => { + const className = this.config.classNames.controlPressed; + Object.defineProperty(button, 'pressed', { + enumerable: true, + get() { + return hasClass(button, className); + }, + set(pressed = false) { + toggleClass(button, className, pressed); + }, + }); + }; + // Toggle classname when pressed property is set Object.values(this.elements.buttons) .filter(Boolean) .forEach(button => { - const className = this.config.classNames.controlPressed; - Object.defineProperty(button, 'pressed', { - enumerable: true, - get() { - return hasClass(button, className); - }, - set(pressed = false) { - toggleClass(button, className, pressed); - }, - }); + if (is.array(button)) { + button.filter(Boolean).forEach(addProperty); + } else { + addProperty(button); + } }); } |