2010-06-08 7 views
2

Je souhaite utiliser une fonction sur ma page html mais le contenu est livré via ajax, comment charger le script, puis appliquer la fonction? Cela ne fonctionnera pas si j'inclue le script dans mon <head>. Comment puis-je utiliser le jQuery .find() et appliquer une fonction ou modifier le CSS pour le contenu qui a été livré après le chargement de la page?Chargement du script avant la fonction

+0

Injectez-vous le script par le biais de 'document.createElement ('script')'? – Amarghosh

Répondre

1

LABjs(http://labjs.com/) a une interface impressionnante pour cela. Voici un exemple de code.

<!-- In the head --> 
<script src="lab.js"></script> 
<!-- In the body --> 
<script> 
    $LAB 
    .script("yourscript.js") 
    .wait(function(){ 
      yourfunction(); 
    }); 
</script> 

Dans l'exemple ci-dessus, le yourfunction(); ne sera appelée après que le script yourscript.js a été chargé.

Éditer: Après un appel ajax utilisant la méthode .load, voici comment votre script de corps pourrait ressembler.

<script> 
    $('taggetelmselector').load(your_url, data, function(){ 
     $LAB 
     .script("yourscript.js") 
     .wait(function(){ 
      yourfunction(); 
     }); 
    }); 
</script> 
+0

Je veux le charger après que les résultats de la recherche via ajax aient été chargés – andrei

+1

Alors que vous devrez toujours utiliser LABjs, vous devez ajouter un gestionnaire d'événements ajax complete à votre appel ajax. Je vais mettre à jour l'exemple en supposant que vous travaillez avec la méthode .load() [http://api.jquery.com/load/]. – partoa

+0

J'ai trouvé la réponse: J'ai utilisé $ .get(); combiné avec $ .getScript pour un rafraîchissement automatique des scripts de cette façon ils ont gardé le compte des nouveaux éléments – andrei

0

jQuery a cette fonctionnalité intégrée à la fonction getScript.

$.getScript('yourscript.js', yourfunction); 
Questions connexes