95 votes

$(document).on("click"... ne fonctionne pas ?

Y a-t-il une erreur bien connue que je pourrais faire ici ?

J'ai un script qui utilise .on() parce qu'un élément est généré dynamiquement, et cela ne fonctionne pas. Juste pour le tester, j'ai remplacé le sélecteur par le wrap de l'élément dynamique, qui est statique, et cela ne fonctionne toujours pas ! Lorsque j'ai utilisé le bon vieux .click pour le wrap, cela a fonctionné.
(Cela ne fonctionnera pas pour l'élément dynamique évidemment, celui qui compte).

Ça marche :

$("#test-element").click(function() {
    alert("click");
});

Ce n'est pas le cas :

$(document).on("click","#test-element",function() {
    alert("click");
});

UPDATE :

J'ai cliqué avec le bouton droit de la souris et fait "Inspecter l'élément" dans Chrome pour vérifier quelque chose, puis l'événement de clic a fonctionné. J'ai actualisé le site et cela n'a pas fonctionné, j'ai inspecté l'élément et cela a fonctionné. Qu'est-ce que cela signifie ?

1voto

Hakan Points 11

Si ce code ne fonctionne pas même sous document ready, il est fort probable que vous ayez assigné un numéro d'identification de l'utilisateur. return false; quelque part dans votre fichier js vers ce bouton, si c'est un bouton essayez de le changer en un ,span, anchor ou div et testez si cela fonctionne.

$(document).on("click","#test-element",function() {
        alert("click bound to document listening for #test-element");
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X