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 № 1var 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