/ / Ako načítam externé súbory Javascript pomocou programu „paginit“ v aplikácii jQuery Mobile? - jquery, jquery-mobile

Ako načítať externé súbory Javascript pomocou `paginit 'v jQuery Mobile? - jquery, jquery-mobile

Posuvná lišta sa nenačíta, pokiaľ nenarazím na obnovenie. Predpokladám, že sa to dá vyriešiť pomocou jQuery Mobile pageinit. Toto som vyskúšal:

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

Žiadne kocky. Nejaké nápady?

odpovede:

2 pre odpoveď č. 1
var jsonp = document.createElement("script");
jsonp.type = "text/javascript";
jsonp.src = "cubiq-iscroll-bad88fb/src/iscroll.js";
document.getElementsByTagName("body")[0].appendChild(jsonp);

malo by to fungovať dobre. Ak súbor .js funguje bez chyby. Dúfam, že to pomôže.


1 pre odpoveď č. 2

Si môžete vyskúšať:

<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 pre odpoveď č. 3

Skúste ho spustiť skôr, ako sa zobrazí stránka:

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

jQuery mobile $ (dokument). už ekvivalent


1 pre odpoveď č. 4

pretože .live bude zastaraný, môžete tiež

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

Môže sa tiež stať, že načítate svojeskripty príliš neskoro, prirodzene na tvojom mieste by som to urobil okamžite, len čo bude dokument alebo zariadenie pripravené, a potom, keď stránka vo vnútri skontroluje, či daný prvok existuje, a ak nie, spustil vytvorenie. Existujú aj udalosti, ktoré si môžete vypočuť v mobilnom API jquery, napr. pagebeforecreate

Alebo ešte lepšie umiestniť kód do globálnej funkcie bez názvu:

function(){
//append your script here
}

dokumentáciu si môžete prečítať na jquery.com v API