diff options
author | David Bonner <dbonner@cogolabs.com> | 2012-10-15 17:20:33 -0400 |
---|---|---|
committer | Rick Waldron <waldron.rick@gmail.com> | 2012-10-15 17:20:33 -0400 |
commit | 9104a3d5f2a1bb72b89ebdbad3f0bfdb2ea8ab74 (patch) | |
tree | 5f145091dacd9348725f20fe6e6fa9535ad9c3ef /src/deprecated.js | |
parent | d6c84c5bb55814df0063e04b12c4143d07cba3f7 (diff) | |
download | jquery-9104a3d5f2a1bb72b89ebdbad3f0bfdb2ea8ab74.tar.gz jquery-9104a3d5f2a1bb72b89ebdbad3f0bfdb2ea8ab74.zip |
Deprecate fn toggle Closes gh-970 https://github.com/jquery/2012-dev-summit/issues/24
Diffstat (limited to 'src/deprecated.js')
-rw-r--r-- | src/deprecated.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/deprecated.js b/src/deprecated.js index af2b6223d..c5fa375d4 100644 --- a/src/deprecated.js +++ b/src/deprecated.js @@ -60,4 +60,30 @@ jQuery.sub = function() { return jQuerySub; }; +jQuery.fn.toggle = function( fn ) { + // Save reference to arguments for access in closure + var args = arguments, + guid = fn.guid || jQuery.guid++, + i = 0, + toggler = function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + }; + + // link all the functions, so any of them can unbind this click handler + toggler.guid = guid; + while ( i < args.length ) { + args[ i++ ].guid = guid; + } + + return this.click( toggler ); +}; + })(); |