From 677054c0b5b2df1934be3d805fbbf2dcc3271de6 Mon Sep 17 00:00:00 2001 From: ekhaled Date: Tue, 3 May 2011 11:33:52 +0100 Subject: [PATCH] modify .removeClass() to accept functions as argument --- src/zepto.js | 4 ++-- test/zepto.html | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/zepto.js b/src/zepto.js index 6ab38edc0..c78b93a2b 100644 --- a/src/zepto.js +++ b/src/zepto.js @@ -252,9 +252,9 @@ var Zepto = (function() { }) }, removeClass: function(name){ - return this.each(function() { + return this.each(function(idx) { classList = this.className; - name.split(/\s+/g).forEach(function(klass) { + funcArg(this,name,idx,classList).split(/\s+/g).forEach(function(klass) { classList = classList.replace(classRE(klass), " ") }); this.className = classList.trim() diff --git a/test/zepto.html b/test/zepto.html index 8b11dd5d0..3142131c1 100644 --- a/test/zepto.html +++ b/test/zepto.html @@ -1067,6 +1067,16 @@

Zepto DOM unit tests

return "green"; }); t.assertEqual('red blue green', el.className); + + //removeClass with function argument + $('#some_element').removeClass(function(idx,classes){ + //test the value of "this" + t.assertEqualCollection($('#some_element'), $(this)); + //test original classes are being passed + t.assertEqual('red blue green', this.className); + return "blue"; + }); + t.assertEqual('red green', el.className); }, testHasClass: function(t){