$(document).ready(handler)
s'exécute une fois que le DOM est entièrement chargé. Si le contenu est ajouté ultérieurement à la page à l'aide d'AJAX, qui contient une fonction $(document).ready(handler)
, cette fonction est exécutée immédiatement, conformément au code jQuery API. De plus, .ready
ne peut être appelé que sur un objet jQuery correspondant au document en cours.
Ce n'est pas ce que je veux, mais :)
Comment puis-je obtenir ce type de fonctionnalité .ready
pour les données chargées via AJAX après .ready
a déjà tiré, d'une manière compatible multi-navigateur?
EDIT: Voici un exemple très simplifié. J'ai un problème que j'essaie de résoudre, mais je suis plus intéressé à comprendre comment le faire correctement. Fondamentalement, la fonction .ready dans ajaxPage.html est en train de se déclencher avant que importantDependency.js soit complètement chargé, donc le premier chargement d'ajaxPage, importantDependency est manquant, mais les charges suivantes le voient.
index.html
...
<script type="text/javascript">
$(document).ready(function() {
alert("The document is ready");
$('#myButton').click(function() {
$('<div></div>').dialog({
open: function() {
$(this).load('ajaxPage.html');
}
});
});
});
</script>
...
ajaxPage.html
...
<script type="text/javascript" src="importantDependency.js"></script>
<script type="text/javascript">
$(document).ready() {
$('#thing').leverageImportantDependency();
});
</script>
...
EDIT 2: Je veux faire DE le contenu chargé, non de la page appelant le contenu. La modification de la page d'appel signifie la duplication de code dans chaque instance où elle est appelée. Je voudrais que le comportement soit attaché au contenu, pas à la page qui l'appelle.
Qu'est-ce que vous essayez de faire? – jAndy
vous voulez dire que vous voulez tirer une fois ajax terminé // – kobe