Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

#5001: Fixes jqLite not appropriately adding and removing classes for IE... #5669

Closed
wants to merge 9 commits into from
Closed
14 changes: 12 additions & 2 deletions src/jqLite.js
Original file line number Diff line number Diff line change
Expand Up @@ -308,11 +308,20 @@ function jqLiteRemoveClass(element, cssClasses) {
);
});
}
else if (msie === 9) {
forEach(cssClasses.split(' '), function(cssClass) {
element.className = trim(
(" " + (element.className || '') + " ")
.replace(/[\n\t]/g, " ")
.replace(" " + trim(cssClass) + " ", " ")
);
});
}
}

function jqLiteAddClass(element, cssClasses) {
if (cssClasses && element.setAttribute) {
var existingClasses = (' ' + (element.getAttribute('class') || '') + ' ')
var existingClasses = (' ' + (element.getAttribute('class') || element.className || '') + ' ')
.replace(/[\n\t]/g, " ");

forEach(cssClasses.split(' '), function(cssClass) {
Expand All @@ -322,7 +331,8 @@ function jqLiteAddClass(element, cssClasses) {
}
});

element.setAttribute('class', trim(existingClasses));
(msie === 9 && !(element instanceof SVGElement)) ? element.className = trim(existingClasses) :
element.setAttribute('class', trim(existingClasses));
}
}

Expand Down