aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAriel Flesler <aflesler@gmail.com>2008-12-25 20:12:18 +0000
committerAriel Flesler <aflesler@gmail.com>2008-12-25 20:12:18 +0000
commit0a8f96ac3d37f637ab433c037d4f807e8ef94bbe (patch)
treec1e43b5915ca26a83d00819dcbe1cdc259612697
parent0e3e470edc77cde0eede8aa6b7642c336d081d66 (diff)
downloadjquery-0a8f96ac3d37f637ab433c037d4f807e8ef94bbe.tar.gz
jquery-0a8f96ac3d37f637ab433c037d4f807e8ef94bbe.zip
jquery core: Closes #1681. jQuery.fn.toggleClass can accept a boolean argument indicating add/remove.
-rw-r--r--src/core.js6
-rw-r--r--test/unit/core.js9
2 files changed, 12 insertions, 3 deletions
diff --git a/src/core.js b/src/core.js
index 0e02436fc..5a098bebd 100644
--- a/src/core.js
+++ b/src/core.js
@@ -1284,8 +1284,10 @@ jQuery.each({
jQuery.className.remove( this, classNames );
},
- toggleClass: function( classNames ) {
- jQuery.className[ jQuery.className.has( this, classNames ) ? "remove" : "add" ]( this, classNames );
+ toggleClass: function( classNames, state ) {
+ if( typeof state !== "boolean" )
+ state = !jQuery.className.has( this, classNames );
+ jQuery.className[ state ? "add" : "remove" ]( this, classNames );
},
remove: function( selector ) {
diff --git a/test/unit/core.js b/test/unit/core.js
index 4da992de0..5d2f5f407 100644
--- a/test/unit/core.js
+++ b/test/unit/core.js
@@ -1493,13 +1493,20 @@ test("removeClass(String) - simple", function() {
});
test("toggleClass(String)", function() {
- expect(3);
+ expect(6);
var e = jQuery("#firstp");
ok( !e.is(".test"), "Assert class not present" );
e.toggleClass("test");
ok( e.is(".test"), "Assert class present" );
e.toggleClass("test");
ok( !e.is(".test"), "Assert class not present" );
+
+ e.toggleClass("test", false);
+ ok( !e.is(".test"), "Assert class not present" );
+ e.toggleClass("test", true);
+ ok( e.is(".test"), "Assert class present" );
+ e.toggleClass("test", false);
+ ok( !e.is(".test"), "Assert class not present" );
});
test("removeAttr(String", function() {