2013-05-15 1 views
0

J'ai utilisé e.preventDefault() dans Jquery pour charger une page html dans un fichier. La page HTML a une action Ajax qui obtiendra les données du serveur. Je l'ai fait fonctionner pour afficher la page, mais pas les données Ajax qu'il a obtenu. Il me semble que l'affichage de la page se passe avant les données de rappel ajax. Mais avec e.preventDefault, lorsque vous cliquez sur le lien, la page ouvre une nouvelle page et fonctionne avec toutes les données qu'elle a récupérées à partir de la page ajax. Toute solution ou aide pour retarder la page de chargement.e.preventDefault charge la page vide sans données Ajax

$(document).ready(function() { 
    $('a').click(function (e) {      
     $("#content").load($(this).attr("href"));    
     e.preventDefault();  
    });    
}); 
+3

avez-vous essayé de mettre le 'e .preventDefault(); 'd'abord, puis la méthode de chargement ??? –

+0

fait que .. même résultat. – user2386031

Répondre

0

La cause la plus probable est que la page que vous charge déclenche les requêtes ajax dans le cadre d'un gestionnaire d'événements. Par exemple.

$(document).ready(function(){ 
    fetchDataByAjax(); 
} 

Cependant cet événement ne sera pas allumé lorsque vous le chargez via ajax. l'événement «prêt pour le document» a déjà eu lieu et cela n'arrivera qu'une seule fois.

Pour que cela fonctionne, vous devrez ajouter le javascript à un lieu commun et l'inclure dans les deux pages. Dans un, vous pouvez toujours exécuter la (les) méthode (s) dans le document.ready ou quoi que vous utilisiez) tandis que dans l'autre vous l'exécuterez quand vous avez inséré le html dans #content

Questions connexes