jQuery's Toggle Event function has been removed as part of version 1.9.
I was using this function like so:
$('#example').toggle(function() {     do stuff }, function() {     do stuff });   What would be the best way to reproduce this functionality now Toggle Event has gone?
Load the MIGRATE and see the code there
See my post about the same thing
Where has fn.toggle( handler(eventObject), handler(eventObject)...) gone?
I have suggested they rename it to fn.toggler instead of removing it
Here is the code - it is a self-contained jQuery plugin and can be used as is.
jQuery.fn.toggle = function( fn, fn2 ) {   // Don't mess with animation or css toggles   if ( !jQuery.isFunction( fn ) || !jQuery.isFunction( fn2 ) ) {     return oldToggle.apply( this, arguments );   }   // migrateWarn("jQuery.fn.toggle(handler, handler...) is deprecated");   // 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 ); };   Shorter, non-tested version:
(function( $ ){   $.fn.toggler = function( fn, fn2 ) {     var args = arguments,guid = fn.guid || $.guid++,i=0,     toggler = function( event ) {       var lastToggle = ( $._data( this, "lastToggle" + fn.guid ) || 0 ) % i;       $._data( this, "lastToggle" + fn.guid, lastToggle + 1 );       event.preventDefault();       return args[ lastToggle ].apply( this, arguments ) || false;     };     toggler.guid = guid;     while ( i < args.length ) {       args[ i++ ].guid = guid;     }     return this.click( toggler );   }; })( jQuery ); 
                        This also works well.
$.fn.toggleClick = function(){      var functions = arguments ;      return this.click(function(){             var iteration = $(this).data('iteration') || 0;             functions[iteration].apply(this, arguments);             iteration = (iteration + 1) % functions.length ;             $(this).data('iteration', iteration);     }); }; 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With