2011-04-21 30 views
22

Estoy desarrollando la aplicación usando jQuery Mobile 4.1.jQuery Mobile - botón Atrás

En mi aplicación, tengo dos páginas html como login.html y home.html. En home.html tiene 3 páginas.() como página de menú, página de búsqueda, página de resultados.

El flujo del proyecto es login.html ---> home.html. En home.html, la página de menú se muestra como una primera página. Si elijo alguna de las opciones en la página de menú, se moverá a la página de búsqueda y luego a la página de resultados. considera, actualmente estoy en la página de resultados. Si presiono el botón Atrás en los navegadores móviles (iPhone-safari, Android-chrome), entonces se mueve al login.html.

Pero quiero mostrar la página de búsqueda. ¿Cómo resolver esto? ¿Es posible hacer esto?

[Nota: Las páginas deben estar en la página html única (home.html).

+0

También tengo el mismo problema [link] (http://stackoverflow.com/questions/ 11307727/not-getting-proper-result-on-back-press-in-jquery-mobile). Alguien tiene solución [1]: http://stackoverflow.com/questions/11307727/not-getting-proper-result-on-back-press-in-jquery-mobile – PPD

Respuesta

67

uso del atributo data-rel="back" en la etiqueta de anclaje en lugar de la barra de navegación de hash, esto le llevará a la página anterior

Mira hacia atrás vincular: Here

+0

Ya THanks .. Pero quiero para mover la página anterior a través del botón Atrás del navegador. – Finder

+2

De forma predeterminada, el botón de retroceso del navegador lo lleva de vuelta a la última página, entonces, ¿por qué necesita codificar esto? –

+0

En mi ejemplo, el botón Atrás de los navegadores me lleva al login.html cuando hago clic en el botón Atrás en el navegador (Nota: estoy en la página de resultados de home.html). – Finder

3

Puede probar este script en el encabezado del código HTML:

<script> 
    $.extend( $.mobile , { 
    ajaxEnabled: false, 
    hashListeningEnabled: false 
    }); 
</script> 
18

las nuevas versiones de API móvil jQuery (que supongo que es más nuevo que 1,5) botón requerir la adición de 'atrás' de forma explícita i n encabezado o parte inferior de cada página.

Por lo tanto, trate de añadir esto en su página de etiquetas div:

data-add-back-btn="true" 
data-back-btn-text="Back" 

Ejemplo:

<div data-role="page" id="page2" data-add-back-btn="true" data-back-btn-text="Back"> 
+1

Este funciona para mí, pero ¿cómo se agrega un ícono? Probé data-icon = "back" pero el botón desapareció –

5

tratar

$(document).ready(function(){ 
    $('mybutton').click(function(){ 
     parent.history.back(); 
     return false; 
    }); 
}); 

o

$(document).ready(function(){ 
    $('mybutton').click(function(){ 
     parent.history.back(); 

    }); 
}); 
0

Esta es la versión 1.4.4

<div data-role="header" > 
     <h1>CHANGE HOUSE ANIMATION</h1> 
     <a href="#" data-rel="back" class="ui-btn-left ui-btn ui-icon-back ui-btn-icon-notext ui-shadow ui-corner-all" data-role="button" role="button">Back</a> 
    </div> 
+0

no debe agregar esas clases cuando configura 'data-role = button', etc. La mayoría de ellas no son necesarias , y aquellos que hacen cosas deberían ser reemplazados por los valores correctos de 'data-icon' y' data-iconpos' – naugtur

0

intenta utilizar li puede ser más uniforme

<ul> 
<li><a href="#one" data-role="button" role="button">back</a></li> 
</ul> 
Cuestiones relacionadas