Skip to content

Commit f208ba7

Browse files
committed
classList fallback
Implements a fallback for classList when element.classList is falsey. Refs: #19
1 parent 6572704 commit f208ba7

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

app/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ module.exports = generators.Base.extend({
103103
'babel-core',
104104
'babel-loader',
105105
'babel-preset-es2015',
106+
'classlist',
106107
'cloudfour/core-gulp-tasks',
107108
'cloudfour/core-hbs-helpers',
108109
'fabricator-assemble',

app/templates/src/assets/fabricator/scripts/fabricator.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
'use strict';
22

3+
var ClassList = require('classlist');
34
require('./prism');
45

56
/**
@@ -85,7 +86,7 @@ fabricator.setActiveItem = function () {
8586
for (var i = fabricator.dom.menuItems.length - 1; i >= 0; i--) {
8687

8788
// remove active class from items
88-
fabricator.dom.menuItems[i].classList.remove('f-is-active');
89+
fabricator.toggleClass(fabricator.dom.menuItems[i], 'f-is-active', false);
8990

9091
// get item href
9192
href = fabricator.dom.menuItems[i].getAttribute('href');
@@ -131,7 +132,7 @@ fabricator.setActiveItem = function () {
131132
index = (items.indexOf(id) > -1) ? items.indexOf(id) : 0;
132133

133134
// set the matched item as active
134-
fabricator.dom.menuItems[index].classList.add('f-is-active');
135+
fabricator.toggleClass(fabricator.dom.menuItems[index], 'f-is-active', true);
135136

136137
};
137138

@@ -173,7 +174,7 @@ fabricator.setToggleOption = function (toggleType, state) {
173174
};
174175

175176
fabricator.toggleClass = function (element, className, state) {
176-
let classList = element.classList;
177+
let classList = element.classList || ClassList(element);
177178
switch (state) {
178179
case true:
179180
classList.add(className);
@@ -205,7 +206,7 @@ fabricator.singleItemToggle = function () {
205206
var group = this.parentNode.parentNode.parentNode,
206207
type = e.currentTarget.getAttribute('data-f-toggle-control');
207208
e.preventDefault();
208-
group.querySelector('[data-f-toggle=' + type + ']').classList.toggle('f-u-hidden');
209+
fabricator.toggleClass(group.querySelector('[data-f-toggle=' + type + ']'), 'f-u-hidden');
209210
};
210211

211212
for (var i = 0; i < itemToggleSingle.length; i++) {

0 commit comments

Comments
 (0)