aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAriel Flesler <aflesler@gmail.com>2008-12-25 20:13:42 +0000
committerAriel Flesler <aflesler@gmail.com>2008-12-25 20:13:42 +0000
commit654d946ead6bc1f995c04af2abc02da30cfe4f74 (patch)
tree531ee9db4ea6154553b4dbf8197412d8c84cc72d
parent0a8f96ac3d37f637ab433c037d4f807e8ef94bbe (diff)
downloadjquery-654d946ead6bc1f995c04af2abc02da30cfe4f74.tar.gz
jquery-654d946ead6bc1f995c04af2abc02da30cfe4f74.zip
jquery fx: Closes #3219. jQuery.fn.toggle can accept a boolean argument indicating show/hide.
-rw-r--r--src/fx.js13
-rw-r--r--test/unit/fx.js9
2 files changed, 16 insertions, 6 deletions
diff --git a/src/fx.js b/src/fx.js
index 626119bc9..2d6433dd3 100644
--- a/src/fx.js
+++ b/src/fx.js
@@ -57,15 +57,18 @@ jQuery.fn.extend({
_toggle: jQuery.fn.toggle,
toggle: function( fn, fn2 ){
+ var bool = typeof fn === "boolean";
+
return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
this._toggle.apply( this, arguments ) :
- fn ?
+ fn == null || bool ?
+ this.each(function(){
+ var state = bool ? fn : jQuery(this).is(":hidden");
+ jQuery(this)[ state ? "show" : "hide" ]();
+ }) :
this.animate({
height: "toggle", width: "toggle", opacity: "toggle"
- }, fn, fn2) :
- this.each(function(){
- jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();
- });
+ }, fn, fn2);
},
fadeTo: function(speed,to,callback){
diff --git a/test/unit/fx.js b/test/unit/fx.js
index f8b63835e..8af92979e 100644
--- a/test/unit/fx.js
+++ b/test/unit/fx.js
@@ -155,13 +155,20 @@ test("stop(clearQueue, gotoEnd)", function() {
});
test("toggle()", function() {
- expect(3);
+ expect(6);
var x = jQuery("#foo");
ok( x.is(":visible"), "is visible" );
x.toggle();
ok( x.is(":hidden"), "is hidden" );
x.toggle();
ok( x.is(":visible"), "is visible again" );
+
+ x.toggle(true);
+ ok( x.is(":visible"), "is visible" );
+ x.toggle(false);
+ ok( x.is(":hidden"), "is hidden" );
+ x.toggle(true);
+ ok( x.is(":visible"), "is visible again" );
});
var visible = {