Skip to content

Instantly share code, notes, and snippets.

@melomano
Last active August 29, 2015 14:04
Show Gist options
  • Select an option

  • Save melomano/25d0adcba763ce02704e to your computer and use it in GitHub Desktop.

Select an option

Save melomano/25d0adcba763ce02704e to your computer and use it in GitHub Desktop.
Manage Class
var manageClass = {},
hasClass, addClass, removeClass, toggleClass;
if ('classList' in document.documentElement) {
hasClass = function(elem, className) {
return elem.classList.contains(className);
};
addClass = function(elem, className) {
elem.classList.add(className);
};
removeClass = function(elem, className) {
elem.classList.remove(className);
};
toggleClass = function(elem, className) {
elem.classList.toggle(className);
};
} else {
hasClass = function(elem, className) {
return new RegExp('(^|\\s)' + className + '(\\s|$)').test(elem.className);
};
addClass = function(elem, className) {
if (!hasClass(elem, className)) {
elem.className += (elem.className ? ' ' : '') + className;
}
};
removeClass = function(elem, className) {
if (hasClass(elem, className)) {
elem.className = elem.className.replace(new RegExp('(^|\\s)*' + className + '(\\s|$)*', 'g'), '');
}
};
toggleClass = function(elem, className) {
(hasClass(elem, className) ? removeClass : addClass)(elem, className);
};
}
manageClass.hasClass = hasClass;
manageClass.addClass = addClass;
manageClass.removeClass = removeClass;
manageClass.toggleClass = toggleClass;
window.manageClass = manageClass;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment