2012-04-30 14 views
5

ho 2 pulsantijQuery, aggiungere e rimuovere i gestori di eventi

$(".button1").on("click", function(event){ 
$(".button2").on("click", function(event){ 

Quello che vorrei fare è iniziare con button1 come cliccato e non hanno alcun listener di eventi, quando Button2 viene cliccato il listener di eventi viene rimosso e il il listener di eventi per il pulsante 1 è attivato.

Questa è una tecnica abbastanza comune è in actionscript 3 con il metodo removeEventListener() e vorrebbe utilizzare un metodo o una tecnica simile in jquery.

risposta

5

on() evento metodo bind e off() unbind esso. Se dai il parametro a off(), verrà annullato solo l'evento fornito, ma senza parametro separare tutti gli eventi.

$('.button1').on('click', function() { 
     console.log('button1'); 
     $(this).off('click'); 
     $('.button2').on('click'); 
    }) 
    $('.button2').on('click', function() { 
     console.log('button2'); 
     $(this).off('click'); 
     $('.button1').on('click'); 
    }) 
0

Questo è ciò che ho, ma non mettere il listener di eventi di nuovo in

$(".slide1").on("click", function(){ 
    $(this).addClass('on'); 
    $('.slide2').removeClass('on'); 
    $(this).off('click'); 
    $('.slide2').on('click'); 
}); 

$(".slide2").on("click", function(){ 
    $(this).addClass('on'); 
    $('.slide1').removeClass('on'); 
    $(this).off('click'); 
    $('.slide1').on('click'); 
}); 
Problemi correlati