2009-03-01 15 views
9

Estoy usando la biblioteca jquery en mi proyecto. Tengo un terrible problema con las pestañas jquery. Las soluciones consisten en que cuando estaba en la tercera pestaña, publiqué mi formulario, las pestañas se recargaron y van a la primera pestaña. estoy buscando resolver el problema por mucho tiempo.jquery tabs postback problem

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#example > ul").tabs({ remote: true, cache: true }); 
    });  
</script> 

así que cómo resuelvo este problema? thx sus respuestas.

Respuesta

13

pestañas pueden usar cookies para almacenar la pestaña actual. Eche un vistazo a las pestañas documentation. Abajo, en las opciones de la lista hay un ejemplo de cómo utilizar cookies para almacenar la ficha actual:

$('.selector').tabs({ cookie: { expires: 30 } }); 

tal fin es necesario jquery cookies plugin ser incluido sin embargo.

+0

Para mí, esta fue la mejor y más fácil solución para implementar. Tengo muchas pestañas en tres páginas diferentes y las pestañas mantienen su estado a través de los clics de pestaña y las devoluciones de página. Increíble. –

+0

Ahh, esto parece una solución perfecta a un problema que tengo con vistas parciales en pestañas ... desafortunadamente, el sitio web jquery fue eliminado debido a ataques de spam, en los enlaces a la documentación de pestañas y al plugin de cookies jquery ahora no están disponibles ... – Dronz

24

No ha especificado si está utilizando ASP.NET, pero si usted está puede almacenar la pestaña seleccionada en ese momento en un asp <: HiddenField/> en lugar de una cookie:

<script type="text/javascript" language="javascript"> 
    $(function() { 
     $("#example").tabs({ 
      show: function() { 
       var sel = $('#example').tabs('option', 'selected'); 
       $("#<%= hidLastTab.ClientID %>").val(sel); 
      }, 
      selected: <%= hidLastTab.Value %> 
     }); 
    }); 
</script> 
<asp:HiddenField runat="server" ID="hidLastTab" Value="0" /> 

Si no ASP.NET, probablemente puedas hacer algo similar.

+1

Esta solución funcionó perfectamente para mí usando ASP.net Gracias !!! –

+0

¡Esta es una solución increíble! –

+0

Probé muchas otras soluciones sin éxito. Este funcionó a la perfección. Muchas gracias. –

0

I tenían el mismo problema, fijado mediante la adición de lo siguiente a la pestañas jquery seleccione controlador de eventos:

$("div.ui-tabs-panel").html(""); 

Se despeja eficazmente todos los paneles existentes para prevenir la forma de apilamiento.

1

Intenté utilizar la solución publicada por joelsand. Sin embargo, las opciones y eventos de jQuery Tabs han cambiado. La documentación actual está en http://api.jqueryui.com/tabs/.

En lugar del evento "show", utilicé el evento "activado". En lugar de la opción "seleccionada", utilicé la opción "activa". En lugar de un campo oculto, utilicé una variable de JavaScript (declarada fuera del UpdatePanel)

+0

El nombre del evento es ** activar ** (no "activado"). – fortboise