Bonjour,

Après une petite recherche sur developpez.net et sur Google, je n'ai pas trouvé de réponses satisfaisante à mon problème.

J'ai un select qui appelle une fonction quand l'utilisateur le change, par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$('select').change(function(){
        alert("J'ai changé !");
});
Jusqu'ici tout va bien.
Seulement voilà, je suis amené à modifier le DOM pour ajouter de nouveaux selects qui doivent réagir comme le premier.
Je mets donc le code précédent dans une fonction, et j'appelle cette fonction après avoir ajouté le nouveau select, ce qui donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
function init_form(){
    $('select').change(function(){
        alert("J'ai changé !");
    });
}

Le problème, c'est qu'à chaque fois que ma fonction est appelée, tous les selects qui étaient déjà affectés par cette fonction sont affectés une 2e fois.

Du coup si on reprend mon exemple, tant qu'il n'y a qu'un seul select, on aura 1 seule alert. Mais si on ajoute un second select, et qu'on appelle init_form(), on aura 2 alert au changement du premier select.

Existe-t-il un moyen pour que cette fonction libère les affectations d'avant ?