2011-11-17 3 views
0

Je comprends que je peux gérer le pageinit() ou d'autres événements pour exécuter JavaScript pour une page nouvellement chargée, mais cela nécessite que je possède le code JavaScript existant ou être une référence de la page principale.Inclure des scripts sur une sous-page avec jQuery Mobile?

Comment puis-je inclure des scripts au bas d'une sous-page, et l'exécuter au chargement de la page?

J'ai essayé de définir la fonction de la sous-page à une variable globale (je sais que c'est sale), mais même cela ne semble pas fonctionner.

+0

double possible de [jQuery Mobile -Chargement pages dynamiques] (http://stackoverflow.com/questions/8141284/jquery-mobile-loading-dynamic-pages) – Jasper

Répondre

6

J'ai trouvé la réponse moi-même. Il semble que le JavaScript sur la page de l'enfant doit être à l'intérieur de la « page », et pas seulement à l'intérieur de la balise body:

<body> 
    <div data-role="page" data-title="My Subpage"> 
     <p>Awesome content!</p> 
     <!-- DO put your JavaScript here. --> 
     <script type="text/javascript"> 
      alert('This works'); 
     </script> 
    </div> 
    <!-- DON'T put your JavaScript here. --> 
    <script type="text/javascript"> 
     alert('This doesn't work'); 
    </script> 
</body> 

pointe Pro: Il ressemble à un script à l'intérieur du corps, mais en dehors de la " Page "élément, même sur la page principale (première page chargée), ne pas être exécuté !!! Ainsi, même si vous avez désactivé le chargement/les transitions AJAX de jQuery mobile, le rendu de page par défaut tue toujours ces scripts. Tout ce que vous voulez que JQM charge doit être à l'intérieur de l'élément, comme décrit dans leur documentation.

1

Personnellement, j'ai remarqué des mordus de mémoire et des fuites lors du chargement de jscript de cette façon, il semblait qu'il ne l'avait jamais correctement supprimé, créant ainsi des doublons si cette page était chargée encore et encore. J'ai finalement déplacé ce jscript à la page principale, et mes problèmes étaient partis! Bien sûr, cela pourrait être lié au code lui-même, mais il faisait beaucoup de liaison/déconnexion d'événements et je n'ai jamais été sûr que JQ supprimait réellement les références vierges.

Quoi qu'il en soit, juste mon .02 $ ...