jquery event: jQuery.toggle can accept more than 2 functions, closes #2378
authorAriel Flesler <aflesler@gmail.com>
Tue, 29 Apr 2008 21:35:35 +0000 (21:35 +0000)
committerAriel Flesler <aflesler@gmail.com>
Tue, 29 Apr 2008 21:35:35 +0000 (21:35 +0000)
src/event.js
src/fx.js

index 0cf6c58..b72ce7c 100644 (file)
@@ -443,13 +443,13 @@ jQuery.fn.extend({
 
                return this.click(function(event) {
                        // Figure out which function to execute
-                       this.lastToggle = 0 == this.lastToggle ? 1 : 0;
+                       this.lastToggle = (this.lastToggle||0) % args.length;
                        
                        // Make sure that clicks stop
                        event.preventDefault();
                        
                        // and execute the function
-                       return args[this.lastToggle].apply( this, arguments ) || false;
+                       return args[this.lastToggle++].apply( this, arguments ) || false;
                });
        },
 
index 824616a..d5185c5 100644 (file)
--- a/src/fx.js
+++ b/src/fx.js
@@ -35,7 +35,7 @@ jQuery.fn.extend({
        
        toggle: function( fn, fn2 ){
                return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
-                       this._toggle( fn, fn2 ) :
+                       this._toggle.apply( this, arguments ) :
                        fn ?
                                this.animate({
                                        height: "toggle", width: "toggle", opacity: "toggle"