2011-11-03 3 views
3

J'utilise jQuery Mobile. Mais lorsque je charge la page dans un autre fichier html en tant que page, le javascript de ce tag ne s'exécute pas. J'ai vérifié la source et trouvé que l'étiquette de tête est toujours celle d'origine. Alors, que dois-je faire pour exécuter un script lorsque la page est chargée?Comment exécuter JavaScript dans une page qui est chargée?

EDIT1:

J'ai aussi essayé d'écrire du code js intérieur balise body, mais le script ne s'arrêtera pas quand sortir de là. J'ai une minuterie pour qu'il y ait deux courses de minuterie.

EDIT2:

J'ai téléchargé pages:

main.html http://pastebin.com/0Y9Xfrtw

recharge.html http://pastebin.com/j9HfUvqZ

recharge.js http://pastebin.com/K5eCwMAb

+0

jQuery Mobile? hmm ... - dans quel navigateur? Quoi qu'il en soit, essayez de lire dans ce http://stackoverflow.com/questions/2384204/is-there-a-difference-between-ready-and-document-ready – c69

+0

@ c69 La fonction ready() n'était pas recommandée dans jQuery Mobile, mais la fonction pageInit() à la place, mais ne fonctionne pas bien pour moi ... – liuyanghejerry

+0

est-ce qu'il donne des erreurs? ou juste "rien ne se passe"? – c69

Répondre

4

MISE À JOUR # 2 :

Essayez d'arrêter le chronomètre avant la transition de page. Comme vous utilisez plusieurs pages, je ne suis pas sûr que la minuterie s'arrête lorsque vous naviguez ailleurs.Essayez de tester les différentes transitions de page Événements:

Dans l'exemple ci-dessus je:

pagebeforehide 

MISE À JOUR:

J'ai essayé d'annonce votre code de CollerBin dans JSFiddle

Cela fonctionne, je pense, comme je vois la minuterie compte à rebours sur la page de recharge et si elle atteint zéro Revenez à la page d'accueil:

  • http://jsfiddle.net/QgSaw/4/ (avec js timer mais

    Uncaught TypeError: Object [object Object] has no method 'everyTime'

    : sur cette méthode devrait être dans son propre fichier)

Je reçois une erreur

Alternative à EveryTime

avec tous JQM JavaScript (pour chaque page) doit être dans la page qui est chargé en premier. donc si vous chargez index.html placez tout le JavaScript dans cette page. Pour exécuter le JavaScript pour une page spécifique, vous pouvez utiliser l'un des événements d'initialisation de la page, Docs:

JS

$('#page_id').live('pageshow',function(event, ui){ 
    alert('This page was just hidden: '+ ui.prevPage); 
}); 

Exemple:

JS

$('#home').live('pageshow',function(event, ui){ 
    alert('We are back home'); 
}); 

$('#page2').live('pageshow',function(event, ui){ 
    alert('This will only execute on Page 2'); 
}); 

HTML

<div data-role="page" id="home"> 
    <div data-role="content"> 

     <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f"> 
      <li data-role="list-divider">Overview</li> 
      <li><a href="#page2">Page 2</a></li> 
     </ul> 

    </div> 
</div> 

<div data-role="page" id="page2"> 
    <div data-role="content"> 

     <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f"> 
      <li data-role="list-divider">Overview</li> 
      <li><a href="#home">Go Back Home</a></li> 
     </ul> 

    </div> 
</div> 
+0

Que se passe-t-il si page2 est dans un fichier indépendant? – liuyanghejerry

+0

ne devrait pas importer, encore tout JS doit aller dans la page principale chargée –

+0

@liuyanghejerry http://jsfiddle.net/QgSaw/4/ devrait fonctionner avec la fonctionnalité de minuterie –

Questions connexes