2012-07-20 15 views
6

Invece di usare $('.element').toggle(function(){}, function(){});jQuery on ('toggle') possibile?

avrei bisogno di utilizzare il metodo .on() sull'elemento voglio usare .toggle() su ma io non riesco a capire come specificare la mia seconda funzione di gestione degli eventi:

$('body').on('toggle', '.element', function(){}); 

Dove dovrei specificare la funzione del secondo gestore per il mio evento di attivazione/disattivazione?

Ho fatto questo qui: http://jsfiddle.net/D33f4/ ma non succede nulla al primo clic. Io davvero non capisco perché.

+0

Possibile [duplicato] (http://stackoverflow.com/questions/2172614/using-jquery-live-with-toggle-event). – Engineer

+0

se ottengo correttamente, si sta cercando di fare su alternare? –

+0

Ho fatto questo qui: http://jsfiddle.net/D33f4/ ma non succede nulla al primo clic. Io davvero non capisco perché. Qualche idea? – Vincent

risposta

6

Provare a utilizzare solo la levetta.

$('#clickme').toggle(
    function(){alert('click 1');}, 
    function(){alert('click 2');} 
); 

Come lo è, non fa nulla sul primo scatto perché è solo attaccare il gestore di eventi in quel punto.

EDIT:

non ho letto pienamente il palo. Colpa mia.

$('body').on('click', '#clickme', function() 
{ 
    var state = $(this).data('state'); 


    switch(state){ 
     case 1 : 
     case undefined : alert('click 1'); $(this).data('state', 2); break; 
     case 2 : alert('click 2'); $(this).data('state', 1); break; 
    } 
}); 
+0

Sulla risposta specifica 'Invece di usare $ ('. Elemento '). Toggle (function() {}, function() {}); ' –

+0

Sì, il mio male. Ero diretto al jsfiddle –

+0

Grazie, non ho avuto la sottigliezza del perché non sia successo nulla al primo clic. Tuttavia, sono molto sorpreso che non ci sia modo di usare .toggle e .on insieme. Ho sbagliato? – Vincent