2016-04-19 6 views
1

Ich erstelle eine mobile Anwendung mit jquery mobile, aber nach dem Laden einer externen Seite (loggedin.html) über changePage wird die Javascript-Datei auf der externen Seite nicht geladen, sondern erst nach dem Aktualisieren der Seite (loggedin.html ... geladen über changePage). Wie kann das externe Skript ohne Seitenaktualisierung geladen werdenJquery mobile lädt keine Styles nach Änderung Seite

Ich habe zwei Sätze von Datei: index.html und loggedin.html.

Code:

1.index.html

<body> 

<div data-role="page" id="indexpage"> 
    <div data-role="content"> 
    <a href="" id="next" data-role="button">Load page 2</a> 
</div> 
</div> 

<script src="custom/scripts/index.js" type="text/javascript" ></script> 
</body> 

Das Skript (index.js)

$('document').ready(function(){ 
$('#next').click(function(){ 
$.mobile.changePage('loggedin.html') 

}); 
}); 

2.Loggedin.html

<body> 
<div data-role="page" id="loggedin"> 
    <div data-role="content"> 
    You are in 
</div> 
</div> 
<script src="custom/scripts/loggedin.js" type="text/javascript" ></script> 
</body> 

Script (loggedin .js)

$('document').ready(function(){ 

$('document').on("pageshow","#loggedin",function(){ 

console.log('loaded'); 

}); 
}); 

Antwort

1

Base auf dieser Quelle: http://demos.jquerymobile.com/1.3.2/faq/scripts-and-styles-not-loading.html

Der einfachste Ansatz, wenn ein jQuery Mobile Site Aufbau ist der gleiche Satz von Stylesheets und Skripte im Kopf jeder Seite zu verweisen. Wenn Sie bestimmte Skripts oder Stile für eine bestimmte Seite laden müssen, empfiehlt es sich, eine Logik für das pageInit-Ereignis (Details unten) zu erstellen, um den erforderlichen Code beim Erstellen einer bestimmten Seite auszuführen (was durch sein ID-Attribut oder eine Zahl bestimmt werden kann) anderer Wege).

+0

platzieren Ich habe versucht, die () vor dem Schließen der Seite div übergeben, aber es gibt einen Fehler zurück, dass synchrone HTTP-Anfrage veraltet ist ... –

+0

Ich habe eine Lösung gefunden, indem ich das (($ ('document'). On ("pageshow", "# loggedin", funktion() { console.log ('geladen'); });)) Nach der Daten-Role-Header (in logged.html) .... Aber wird die cordova akzeptiert dies, da ich phonegap benutze, um die Anwendung zu packen –

+0

Wenn deine Lösung funktioniert, solltest du sie als Antwort posten :) –

0

Die Lösung für dieses Problem ist: auf der nächsten Seite, die (loggedin.html) ist .. Das ist das Skript auf der Seite nach dem (Data-Rolle Inhalt/Footer)

<body> 
<div data-role="page" id="loggedin"> 

<div data-role="content"> 

You are in 
</div> 
<script type="text/javascript"> 

$('#loggedin').on("pagecreate",function(){ 

console.log('loaded'); 
......{Continue with stuff} 
}); 

</script> 
</div> 

</body> 
Verwandte Themen