2012-04-30 2 views
5

J'ai 2 boutonsjquery, ajouter et supprimer des gestionnaires d'événements

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

Ce que je voudrais faire est de commencer par button1 comme cliqué et ne pas avoir écouteur d'événement, quand Bouton2 est cliqué sur l'écouteur d'événement est supprimé et la L'écouteur d'événement pour le bouton 1 est activé.

Il s'agit d'une technique assez courante dans actionscript 3 avec la méthode removeEventListener() et qui souhaiterait utiliser une méthode ou technique similaire dans jquery.

Répondre

7

Si vous souhaitez supprimer un gestionnaire d'événements lié avec jQuery.on alors vous voudrez probablement jQuery.off

http://api.jquery.com/off/

5

on() événement de liaison de la méthode et off() UNBIND il. Si vous donnez un paramètre à off(), il ne détachera que l'événement fourni, mais sans paramètre, il désengagera tous les événements.

$('.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

C'est ce que j'ai, mais il ne met pas l'écouteur d'événement de retour sur

$(".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'); 
}); 
Questions connexes