Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

<script src="js/jquery-1.12.3.min.js"></script>

<button>clik1</button>

<a href="#">Effacer la classe 1</a>
<script>
    $(document).ready(function(){
    //Au chargement de la page j'ajoute une classe à mon bouton qui va renvoyer une alerte
        $("button").addClass("class1")
        //Lorsqu'on click dur le bouton l'alerte s ouvre
        $(".class1").on("click",function(){
            alert("evenement 1")
        })
        //Lorsque je click sr le lien je supprimer la classe qui gère l'evement de l'alerte
        $("a").on("click",function(){
            $("button").removeClass("class1")
        })
    })
</script>

Ce que je veux

je veux supprimer l'evenement lié à mon button en cliquant sur le lien

Ce que j'obtiens

Lorsque j'inspectes le button je vois bien que la classe a été supprimé, mais quant je click sur le button, l'alerte fonctionne toujours, qu'est-ce qui ne va pas ? :(

4 réponses


Anthony_
Auteur

J'ai essayé avec
if ($(this).hasClass("class1")) { alert("evenement 1") }

ça marche, mais est-ce que quelqu'un a une autre solution ?

Salut,

​ $(".class1").off("click");

@plus
Pierre

La solution de Pierrot01 est la mieux, en alternative, il est aussi possible de remplacer

$(".class1").on("click",function(){
            alert("evenement 1")
        })

par

$(document).on("click",".class1",function(){
            alert("evenement 1")
        })

Sinon tu as ça:

$('.class1').one('click', function () {
    alert('evenement 1')
})