JQuery $(document).prêt à l'ajax charge
J'ai regardé un bon nombre de questions connexes et j'doivent se demander ce complètement différent comme je l'ai vu seulement quelques-uns qui semblait se rapportent.
Je suis le chargement de l'ensemble d'un milieu div via Ajax de JQuery appel et je veux simplement être capable de faire certaines automatique de JQuery sur ce nouvel espace comme $(document).prêt pour un DOM est chargé. J'ai lu que livequery le ferai, mais j'ai pensé qu'il y aurait une façon intégrée. Je suis en train d'ajouter un sélecteur de date pour un champ de saisie à droite un début.
C'est le contenu qui fera appel pour le contenu dans le backend qui sera ensuite tirer section spécifique.
$.post("ReportingWizard",$("#wizard_form").serialize(), function (data) { setData(data); });
function setData(data) {
divElement.innerHTML = data;
$(activeTab).fadeIn(); //Fade in the active content
$(".wizardBody").fadeIn();
}
À l'intérieur du fichier qui est en cours de mise à divElement aura une méthode JQuery qui doit être exécuté pour modifier le code html à l'intérieur.
Je veux être ajouté avant le milieu div être chargé, mais sur la base du contenu qui est récupérée. Le JQuery est en fait dans le contenu chargé et donne essentiellement des identifiants pour les divs et ajoute des images et de la date de la cueillette des capacités à des domaines spécifiques.
OriginalL'auteur Craig | 2010-07-27
Vous devez vous connecter pour publier un commentaire.
Enregistrer les événements dans le rappel de la fonction AJAX.
Si vous utilisez
.load()
faire charger le milieu div, placez votre jQuery code directement dans le rappel:Si vous utilisez certains des autres fonctions AJAX, placez votre code jQuery après la ligne où vous ajoutez les éléments du DOM dans le rappel:
Si les événements que vous souhaitez lier, vous pouvez consulter l'aide .
()
(ou .delegate()
ou.live()
si vous êtes en utilisant les anciennes versions de jQuery, qui ont été autour lorsque cette question a été écrit à l'origine). Vous pouvez voir une comparaison de ces différentes méthodes ici.Ces méthodes permettent la liaison des événements d'éléments, même quand ils ne sont pas encore présents dans les DOM, ce qui signifie que vous pouvez lier les événements dans votre
$(document).ready()
bloc, même si les éléments ne sont pas inscrits dans les DOM encore.Cela allait être ma dernière solution, merci. En fin de compte cependant, j'ai été dit que nous n'avons vraiment pas besoin d'Ajax parce que les entités où le fait d'être coupé qu'effectivement utilisé.
J'ai besoin d'une fonction à exécuter sur un classé élément quand il est soit 1) il est chargé ou 2) il est poussé dans la page via ajax, j'ai essayé
on('ready', '.my-class', handler)
, mais il ne fonctionne pas.Les éléments feu n'
ready
cas lorsqu'ils sont ajoutés à la page; l'ready
événement est pour les images, le document, (ci-après, qui ont chargement de l'état). Il n'y a pas de x-navigateur de manière à détecter l'ajout d'un élément à la page automatiquement; vous aurez à conditionnellement vérifier) sur la charge, et b) chaque fois que la page des mises à jour via AJAX.OriginalL'auteur Matt
Craig,
Je pense que vous essayez de faire à la dure.
Tout d'abord: Bien que l'on peut techniquement manipuler la réponse avec javascript/jquery avant de les injecter dans la page, ça va être un enfer de beaucoup plus facile de le faire immédiatement après qu'ils ont été ajoutées (comme pour un document de prêt).
Deuxièmement: je ne suis pas sûr de savoir comment efficace que la méthode serait si vous ajoutez quelque chose comme un datepicker. Je devine que vous ne pouvez pas ajouter un datepicker à un élément avant toute chose, c'est dans la page (juste une supposition). Ces widgets jQuery UI ont beaucoup de choses en arrière-plan.
Je vous suggère de suivre les conseils de Matt.
Si vous appelez $.post, la fonction de rappel est le même que celui de votre $(document).prêt de la fonction, il sera appelé dès que la réponse est disponible de sorte que vous pourriez faire quelque chose comme ceci:
C'est la meilleure façon d'aller à ce sujet. La manipulation sera faite dès que les données ont été injectés dans votre page, le même que $(document).prêt.
Si vous pensez qu'il y a un peu de lag avec ce que vous faites et que vous ne voulez pas que vos utilisateurs à voir, l'ensemble d'affichage pour masquer puis fondu d'entrée ou de montrer une fois de la manipulation qui a été fait.
OriginalL'auteur going