2013-07-11 15 views
5

Poiché il metodo di evento jQuery .toggle è deprecato. Cosa dovremmo usare per simulare questo evento (clic alternativi)?jQuery .toggle event deprecato, Che cosa usare?

+0

Si può fornire il codice ? – Dom

+0

Duplicato di http://stackoverflow.com/questions/2459153/alternative-to-jquerys-toggle-method-that-supports-eventdata –

+0

@jahroy Non voglio un metodo di animazione ... –

risposta

4

Aggiungi questo al di fuori di document.ready

$.fn.clicktoggle = function(a, b) { 
    return this.each(function() { 
     var clicked = false; 
     $(this).click(function() { 
      if (clicked) { 
       clicked = false; 
       return b.apply(this, arguments); 
      } 
      clicked = true; 
      return a.apply(this, arguments); 
     }); 
    }); 
}; 

quindi utilizzare il seguente per replicare la funzionalità .toggle:

$("#mydiv").clicktoggle(functionA,functionB); 

Trovato sul JQuery Forums

+0

Scusa, ma cos'è esattamente? È una funzione che hai scritto? Perché $ .fn.clicktoggle e come si chiama questa funzione? Grazie per il vostro anser! –

+0

Il codice precedente estende l'oggetto jQuery aggiungendo un nuovo metodo. Dovresti aggiungere quel codice al tuo gestore "_on pronto". Quindi puoi invocare 'clicktoggle()' come se fosse un metodo jQuery. Puoi leggere l'aggiunta di un metodo jQuery [qui] (http://stackoverflow.com/q/12093192/778118). – jahroy

+0

Molto bello, grazie per la modifica! –

0
var i = 0;  
$('button').click(function() { 
    if (i == 0){   
     $('div').css({background: 'red'}) 
     i++; 
    } else { 
     $('div').css({background: 'yellow'}) 
     i = 0; 
    } 
});