2012-04-11 12 views
0

Ich habe eine JqueryMobile-Anwendung eingerichtet, die dynamisch Seiten aus einigen JSON-Daten erstellt, die von meinem Skript abgerufen werden. Alle diese Seiten oder Inline und Pull hoch. Allerdings muss ich JS in diese Seiten einfügen, aber alles, was ich schreibe, wird nach der Hauptseite ignoriert. Zum Beispiel habe ich eine einfache Funktion, wenn ein Link mit der ID "video" geklickt wird, zeigt es eine Warnmeldung an. Auf meiner Hauptseite funktioniert das großartig, aber nicht auf irgendwelchen Unterseiten. Wie kann ich meine Skripts auf allen Seiten anzeigen lassen? Danke für die Hilfe!Dynamische Jquery Mobile Seiten

+0

FYI - Die Seiten werden alle dynamisch gemacht, so kann ich wirklich nicht mehr als $ .mobile.changePage verwenden, da gebe ich nicht eine URL müssen. – nate8684

Antwort

0

Legen Sie das externe Javascript, nachdem Sie eine dynamische Seite

<script id="external_script" type="text/JavaScript"></script> 
<script> 
    function loadscript(scripturi) { 
     document.getElementById('external_script').src = scripturi; 
    } 
</script> 

Run Loadscript (..) in einer solchen Art und Weise erzeugen, dass es ausgeführt wird, nachdem Sie erzeugen/die dynamische Seite laden.

z.B.

<div id="dynamic-container"><!-- --></div> 

$(#dynamic-container).load("url", function() { 
    loadscript(dynamicscriptURL); 
}); 

ODER

Verwenden Sie einen kleinen javascript library, die eine praktische Funktion "gewährleisten" bietet, die Sie Javascript, HTML, CSS on-Demand und führen Sie dann den Code ermöglicht zu laden. Es kann nicht nur Javascript, sondern HTML Snippet und CSS im laufenden Betrieb laden. Am besten können Sie darauf warten, dass sie Funktionen laden und anschließend aufrufen, die dynamisch geladen werden. Zum Beispiel lädt das folgende JavaScript, einige HTML-Snippets, verwandte CSS und führt dann ein Javascript aus, das nur verfügbar ist, wenn das Skript dynamisch geladen wird.

ensure({ js: "popup.js", html: "popup.html", css: "popup.css" }, function() 
    { 
     PopupManager.show(); 
    }); 
+0

Hey, danke für die Hilfe. Ich habe deine erste Lösung vergebens versucht. Es scheint immer noch nicht funktionieren zu wollen. Unten ist, wie ich die Codierung gemacht habe, ist es richtig? Es funktioniert auf den Hauptseiten, aber nicht auf den Subs. Ich habe den Code in meinem Kopf des Dokuments nate8684

+0

Id wirklich lieber nicht eine andere Bibliothek, wenn ich nicht zu haben ... – nate8684

+0

versuchen Sie die aktualisierte Lösung und lassen Sie mich wissen – t0s6i

0

Skript sollte in der Unterseite der Seitenbereich oder die Scripts geladen werden nicht mitgerechnet.

<div data-role="page" id="subpage"> 

    <div data-role="content"></div> 

    <script type="text/javascript" src="video.js"></script> 

<div> 
Verwandte Themen