Skip to content
Snippets Groups Projects
Commit 0b0a4eee authored by xamgore's avatar xamgore
Browse files

No-jquery implementations of the most popular functions

parent 1f2744c0
Branches
No related merge requests found
......@@ -43,3 +43,38 @@ var Watcher = (function() {
timer = setTimeout(callback, ms);
};
})();
Element.prototype.hasClass = function (className) {
return new RegExp(' ' + className + ' ').test(' ' + this.className + ' ');
};
Element.prototype.addClass = function (className) {
if (!this.hasClass(className)) {
this.className += ' ' + className;
}
};
Element.prototype.removeClass = function (className) {
var newClass = ' ' + this.className.replace(/[\t\r\n]/g, ' ') + ' ';
if (this.hasClass(className)) {
while (newClass.indexOf(' ' + className + ' ') >= 0) {
newClass = newClass.replace(' ' + className + ' ', ' ');
}
this.className = newClass.replace(/^\s+|\s+$/g, ' ');
}
};
Element.prototype.toggleClass = function (className) {
var newClass = ' ' + this.className.replace(/[\t\r\n]/g, " ") + ' ';
if (this.hasClass(className)) {
while (newClass.indexOf(" " + className + " ") >= 0) {
newClass = newClass.replace(" " + className + " ", " ");
}
this.className = newClass.replace(/^\s+|\s+$/g, ' ');
} else {
this.className += ' ' + className;
}
};
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment