/ / Jak załadować zewnętrzne pliki JavaScript za pomocą `paginit` w jQuery Mobile? - jquery, jquery-mobile

Jak załadować zewnętrzne pliki JavaScript za pomocą `paginit` w jQuery Mobile? - jquery, jquery-mobile

Pasek przewijania nie ładuje się, dopóki nie odświeżę. Zakładam, że można to naprawić za pomocą jQuery Mobile pageinit. Oto, co próbowałem:

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

Nie ma kości. Jakieś pomysły?

Odpowiedzi:

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

powinno to działać poprawnie. Jeśli .js działa bez błędu.Myślę, że to pomaga.


1 dla odpowiedzi nr 2

Możesz spróbować:

<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 dla odpowiedzi nr 3

Spróbuj uruchomić przed wyświetleniem strony:

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

jQuery mobile $ (document) .ready equivalent


1 dla odpowiedzi nr 4

od .live będą przestarzałe można również

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

Możliwe, że ładujesz swojeSkrypty są zbyt późne, naturalnie, gdybym był tobą, robiłbym to natychmiast, gdy tylko dokument i / lub urządzenie jest gotowe, a następnie, gdy strona wejdzie do sprawdzenia, czy element istnieje, a jeśli nie, uruchom wywołanie. Istnieją również zdarzenia, które można wysłuchać w mobilnym interfejsie API jquery, np. pagebeforecreate

Albo jeszcze lepiej umieścić kod w globalnej funkcji bez nazwy:

function(){
//append your script here
}

możesz przeczytać dokumentację na jquery.com w interfejsie API