2011-11-02 11 views
6

Vorrei creare un footer condiviso (ad esempio footer.html) che possa essere utilizzato da tutte le pagine della mia applicazione jQuery Mobile. Tuttavia, non riesco a trovare un modo per ottenere jQuery per aggiornare gli stili nella barra di navigazione del piè di pagina dopo aver caricato l'html dal file esterno. Dopo i pensieri sarebbe molto apprezzato.jQuery Mobile - Includi piè di pagina da file esterno

footer.html:

<div data-role="navbar" class="CSS" data-grid="d" id="footerNav"> 
    <ul > 
     <li ><a href="#" id="a" data-icon="custom"><div>a</div></a></li> 
     <li ><a href="#" id="b" data-icon="custom"><div>b</div></a></li> 
     <li ><a href="#" id="c" data-icon="custom"><div>c</div></a></li> 
     <li ><a href="#" id="d" data-icon="custom"><div>d</div></a></li> 
     <li ><a href="#" id="e" data-icon="custom"><div>e</div></a></li> 
    </ul> 
</div> 

Index.HTML:

<div data-role="page" style="position: relative" data-theme="a" id="index"> 
    <div data-role="header"> 
     <div class="homebutton" onclick="location.href='default.html'"> 
      &nbsp;</div> 
     <h1> 
      EVENT CALENDAR</h1> 
    </div> 
    <div data-role="content"> 
     <p> 
      This is a single page boilerplate template that you can copy to build you first 
      jQuery Mobile page. Each link or form from here will pull a new page in via Ajax 
      to support the animated page transitions.</p> 
    </div> 

    <div data-role="footer" class="CSO" data-position="fixed" id="footerDiv"> 

    </div> 

    <script> 
    $('#index').live('pageinit', function (event, ui) { 
     $('#footerDiv').load('Shared/Footer.html'); 
     [Some code to refresh the footer so it gets redrawn by Jquery Mobile] 
    }); 
    </script> 

risposta

8

Supponendo che il resto del codice è valido:

$('#footerDiv').load('Shared/Footer.html').trigger("create"); 
+0

bello, il trigger di creazione funziona meglio e in ogni caso – TecHunter

+0

sì il più vicino, la risposta migliore, ma non esattamente la risposta giusta. –

2

per me, ho dovuto usare la funzione di callback, e aggiungila nel mio evento pageinit:

$(document).on('pageinit', function(event){ 
    $("#footerDiv").load('_footer.html', function(){$(this).trigger("create")}); 
}); 
+0

grazie. ma rimuoverà tutto il mio contant e aggiungerò solo un piè di pagina. voglio solo aggiungere il piè di pagina. Hai qualche idea? –

Problemi correlati