/ / Wie lade ich externe Javascript-Dateien mit `paginit` in jQuery Mobile? - jquery, jquery-mobile

Wie lade ich externe Javascript-Dateien mit "paginit" in jQuery Mobile? - jquery, jquery-mobile

Die Bildlaufleiste wird erst geladen, wenn ich auf Aktualisieren drücke. Ich gehe davon aus, dass dies mit jQuery Mobile behoben werden kann pageinit. Folgendes habe ich versucht:

$("#summaryPage").live("pageinit", function(){
$.getScript("cubiq-iscroll-bad88fb/src/iscroll.js");
});

Kein Würfel. Irgendwelche Ideen?

Antworten:

2 für die Antwort № 1
var jsonp = document.createElement("script");
jsonp.type = "text/javascript";
jsonp.src = "cubiq-iscroll-bad88fb/src/iscroll.js";
document.getElementsByTagName("body")[0].appendChild(jsonp);

Dies sollte gut funktionieren. Wenn die .js ohne Fehler funktioniert. Hoffentlich hilft dies.


1 für die Antwort № 2

Du kannst es versuchen:

<script>
$("#summaryPage").live("pageinit", function(){
var oHead = document.getElementsByTagName("HEAD").item(0);
var oScript= document.createElement("script");
oScript.type = "text/javascript";
oScript.src="other.js";
oHead.appendChild( oScript);
});
</script>

1 für die Antwort № 3

Versuchen Sie es auszuführen, bevor die Seite Folgendes anzeigt:

$("div:jqmData(role="page")").live("pagebeforeshow",function(){
$.getScript("cubiq-iscroll-bad88fb/src/iscroll.js");
});

jQuery mobile $ (Dokument). bereits gleichwertig


1 für die Antwort № 4

da .live veraltet ist, können Sie auch

$(document).on("pageinit", "#summaryPage", function(){
//append head element and custom script
});

Es könnte auch sein, dass Sie Ihre ladenSkripte viel zu spät. Wenn ich Sie wäre, würde ich dies natürlich sofort tun, sobald das Dokument und / oder das Gerät fertig ist. Wenn die Seite angezeigt wird, prüfen Sie, ob das Element vorhanden ist, und lösen Sie, falls nicht, die Erstellung aus. Es gibt auch Ereignisse, die Sie in der mobilen jquery-API abhören können, z. pagebeforecreate

Oder noch besser, setzen Sie den Code in eine globale Funktion ohne Namen:

function(){
//append your script here
}

Sie können die Dokumentation auf jquery.com in der API nachlesen