83 votes

La fonction click de jQuery ne fonctionne pas après un appel ajax ?

La fonction click de jQuery fonctionne bien ici

<div id="LangTable"><a class="deletelanguage">delete</a></div>    

$('.deletelanguage').click(function(){
    alert("success");
});

mais si je définis quelques <a> par ajax, $('.deletelanguage').click ne fonctionne pas.

par exemple

function CreateRow(jdata) { 
    $('#LangTable').append('<a class="deletelanguage">delete</a>');
}

$.ajax({        
    url: "/jobseeker/profile/",
    success: CreateRow
});

Aujourd'hui, le $('.deletelanguage').click pour la dernière <a> ne fonctionne pas.

Exemple jsfiddle : http://jsfiddle.net/suhailvs/wjqjq/

Note : le CSS fonctionne bien ici.

Je veux faire de ces nouvelles annexes des <a> travailler avec jQuery click.

2voto

Prospector Points 773

L'événement de clic n'existe pas à l'endroit où l'événement est défini. Vous pouvez utiliser l'événement en direct ou le déléguer.

$('.deletelanguage').live('click',function(){
    alert("success");
    $('#LangTable').append(' <br>------------<br> <a class="deletelanguage">Now my class is deletelanguage. click me to test it is not working.</a>');
});

1voto

pollux1er Points 119

J'ai testé une solution simple qui fonctionne pour moi ! Mon javascript était dans un fichier js séparé. Ce que j'ai fait, c'est que j'ai placé le javascript pour le nouvel élément dans le html qui a été chargé avec ajax, et cela fonctionne bien pour moi ! C'est pour ceux qui ont de gros fichiers de javascript !

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