mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-01 12:33:37 +08:00
fix(jqlite): removeClass would clobber class names
This commit is contained in:
@@ -208,8 +208,8 @@ function JQLiteData(element, key, value) {
|
||||
function JQLiteHasClass(element, selector, _) {
|
||||
// the argument '_' is important, since it makes the function have 3 arguments, which
|
||||
// is needed for delegate function to realize the this is a getter.
|
||||
var className = " " + selector + " ";
|
||||
return ((" " + element.className + " ").replace(/[\n\t]/g, " ").indexOf( className ) > -1);
|
||||
return ((" " + element.className + " ").replace(/[\n\t]/g, " ").
|
||||
indexOf( " " + selector + " " ) > -1);
|
||||
}
|
||||
|
||||
function JQLiteRemoveClass(element, selector) {
|
||||
|
||||
@@ -318,10 +318,16 @@ describe('jqLite', function(){
|
||||
describe('removeClass', function(){
|
||||
it('should allow removal of class', function(){
|
||||
var selector = jqLite([a, b]);
|
||||
selector.addClass('a');
|
||||
selector.addClass('b');
|
||||
selector.addClass('c');
|
||||
expect(selector.addClass('abc')).toEqual(selector);
|
||||
expect(selector.removeClass('abc')).toEqual(selector);
|
||||
expect(jqLite(a).hasClass('abc')).toEqual(false);
|
||||
expect(jqLite(b).hasClass('abc')).toEqual(false);
|
||||
expect(jqLite(a).hasClass('a')).toEqual(true);
|
||||
expect(jqLite(a).hasClass('b')).toEqual(true);
|
||||
expect(jqLite(a).hasClass('c')).toEqual(true);
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user