/ / Jquery Ajax erreur après le chargement dans un div - jquery, ajax

Erreur Jquery Ajax après le chargement dans un fichier div - jquery, ajax

Supposons que j'ai une page appelée index.php, elle contient un nom d'élément div, divContent, qui contient un bouton appelé "msg" et un autre bouton appelé "show".

Quand je charge index.php deux boutons montrent bien. J'ai ajouté jquery sur ma page. Lorsque je clique sur mon bouton "msg", il indique "msg"

alerte ("réussi");

. Son travail ressemble à lorsque je clique sur le bouton show (en dehors de divContent), il chargera un autre contenu de page sur ma technique divContent by ajax.

$("#msg").click(function(e) {
alert("successful");
});
} //Whilst editing formatting - extra closing brace

$("#show").click(function(e) {
$.ajax({
type: "GET",
url: "test.php",
success: function(msg){
$("#divContent").html(msg);
}
});
e.preventDefault();
});


test.php
--------
<input type="button" id="msg" />

tester.php contient un bouton identique au bouton msg présent dans index.php. Mon problème est lorsque load index.php, cliquez sur le bouton msg pour afficher le message réussi, mais lorsque vous cliquez sur le bouton show, il charge test.php "s contient dans divContent et cliquez sur le bouton msg pour afficher le message" succès ". c'est le problème

Réponses:

0 pour la réponse № 1

c’est parce que vous liez un clic à tousPour les éléments #msg existants, cela ne fonctionnera sur aucun élément qui n’existait pas au moment de la liaison. Ainsi, lorsque vous chargez un nouveau contenu, il n’a pas de clic lié, vous devez le lier à nouveau.

success: function(msg){
$("#divContent").html(msg);
$("#msg").click( .... );
}

OU, utilisez la méthode .on ():

trouver un élément qui est un ancêtre des deux boutons #msg et lier un événement à l'aide de .on

$(".parent").on("click", "#msg", function(){
alert("whatever");
});

cela fera en sorte que tout #msg qui est un enfant de .parent, peu importe la date de création, aura un événement click

la source: http://api.jquery.com/on/


0 pour la réponse № 2

Votre fonction de premier clic a une accolade de fermeture supplémentaire.

$("#msg").click(function(e) {
alert("successful");
});
} //<<Here