2011-11-02 19 views
6

Me gustaría crear un pie de página compartido (por ejemplo, footer.html) que pueda ser utilizado por todas las páginas de mi aplicación jQuery Mobile. Sin embargo, no puedo encontrar una forma de que jQuery actualice los estilos en la barra de navegación del pie de página después de cargar el html desde el archivo externo. Después de los pensamientos sería muy apreciado.jQuery Mobile - Incluir pie de página de archivo externo

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> 

Respuesta

8

Suponiendo que el resto del código es válido:

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

nice, el trigger de creación funciona mejor y en todos los casos – TecHunter

+0

sí, la más cercana aún, la mejor respuesta, pero no exactamente la respuesta correcta. –

2

para mí, tuve que usar la función de devolución de llamada, y agregarlo en mi evento pageinit:

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

gracias. pero eliminará todo mi contenido y solo agregará un pie de página. solo quiero agregar el pie de página. ¿Tienes alguna idea? –

Cuestiones relacionadas