Skip to content

Commit b948e08

Browse files
author
Wesley Cho
committed
angular#5001: Fixes jqLite not correctly adding & removing classes in IE9
1 parent affcbad commit b948e08

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/jqLite.js

+12-2
Original file line numberDiff line numberDiff line change
@@ -308,11 +308,20 @@ function jqLiteRemoveClass(element, cssClasses) {
308308
);
309309
});
310310
}
311+
else if (msie === 9) {
312+
forEach(cssClasses.split(' '), function(cssClass) {
313+
element.className = trim(
314+
(" " + (element.className || '') + " ")
315+
.replace(/[\n\t]/g, " ")
316+
.replace(" " + trim(cssClass) + " ", " ")
317+
);
318+
});
319+
}
311320
}
312321

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

318327
forEach(cssClasses.split(' '), function(cssClass) {
@@ -322,7 +331,8 @@ function jqLiteAddClass(element, cssClasses) {
322331
}
323332
});
324333

325-
element.setAttribute('class', trim(existingClasses));
334+
(msie === 9 && !(element instanceof SVGElement)) ? element.className = trim(existingClasses) :
335+
element.setAttribute('class', trim(existingClasses));
326336
}
327337
}
328338

0 commit comments

Comments
 (0)