Mi sto immergendo nella scrittura di un'app mobile con jQuery Mobile/PhoneGap. Sto usando this sample template per iniziare, che utilizza HTML/JS per creare le pagine. Piuttosto che avere tutti i tag <page>
in un singolo file html, è stato suddiviso in modo che sia più facile da modificare.Creazione di template intestazioni/piè di pagina modello/persistente in jQuery Mobile e PhoneGap
Poiché avrò un file separato per ogni pagina, qual è il modo migliore per includere l'intestazione/piè di pagina temporizzata? L'ho visto solo dove è necessario copiare e incollare l'intero footer-> codice della barra di navigazione in ogni pagina HTML. Questo non sembra dovrebbe essere. Ad esempio, se si desidera modificare una voce di menu, è necessario accedere a ciascuna pagina e modificarla.
Qual è la soluzione che mi manca?
Forse non sto capendo jQuery Mobile. Per esempio, la loro barra laterale che usano per i loro documenti - è quella copia del codice della barra laterale e incollata su ogni pagina? Non ha senso. È la stessa idea della domanda che sto ponendo qui a proposito del footer.
http://jquerymobile.com/test/docs/pages/page-cache.html
Questo è quello che ho che non mi sembra giusto (e $.live('pageinit')
non sta funzionando). Questo HTML è ciò che accade in ogni pagina HTML:
<div id="mainFooter" data-position="fixed" data-id="mainFooter" data-role="footer" class="ui-footer ui-bar-a ui-footer-fixed fade ui-fixed-inline" role="contentinfo" style="top: 58px;">
E il JS
$.live('pageinit', function (event) {
displayFooter();
});
function displayFooter() {
$('#mainFooter').html('<div data-role="navbar" class="nav-glyphish-example" data-grid="d">' +
'<ul>' +
'<li><a href="#" id="menuitem1" data-icon="custom">Menu Item 1</a></li>' +
'<li><a href="#" id="menuitem2" data-icon="custom">Menu Item 2</a></li>' +
'<li><a href="#" id="menuitem3" data-icon="custom">Menu Item 3</a></li>' +
'</ul>' +
'</div>');
}
Non so perché questa domanda non ha più voti positivi, la trovo una delle fessure reali dell'armatura di jquery mobile. – zode64
jQuery Mobile si aspetta che tu faccia l'inclusione/il template sul lato server invece di usare ajax per caricare solo la barra di navigazione o il contenuto (non è solo usato per PhoneGap che conosci). I metodi JQM come .changePage cambiano l'intero HTML della pagina. Quindi se vuoi includere solo la barra di navigazione o il contenuto con ajax ti consiglio di dare un'occhiata alla mia risposta. – bartolsthoorn
sì, questo è ENORME (ed estremamente frustrante) anche per me. Il dirottamento predefinito degli URL di JQM significa fondamentalmente o 1) DRY - DO Ripeti tutto da capo 2) usa un server per fare il tuo include, 3) scrivi brutti hack che irrompono ovunque grazie al modello di markup quasi incomprensibile di JQM 4) cercare di incorporare un framework MVC sopra JQM (sono entusiasta di Angular, ma è una scienza seria) 5) piangere – rmirabelle