From: Ariel Flesler Date: Thu, 25 Dec 2008 20:12:18 +0000 (+0000) Subject: jquery core: Closes #1681. jQuery.fn.toggleClass can accept a boolean argument indica... X-Git-Url: http://git.asbjorn.it/?a=commitdiff_plain;h=0a8f96ac3d37f637ab433c037d4f807e8ef94bbe;p=jquery.git jquery core: Closes #1681. jQuery.fn.toggleClass can accept a boolean argument indicating add/remove. --- diff --git a/src/core.js b/src/core.js index 0e02436..5a098be 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 4da992d..5d2f5f4 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() {