He usado anteriormente la extensión jquery-ui tabs
para cargar fragmentos de página a través de ajax
, y para ocultar u ocultar div
s ocultos dentro de una página. Ambos métodos están bien documentados, y no he tenido problemas allí.jQuery pestañas - obteniendo recientemente índice seleccionado
Ahora, sin embargo, quiero hacer algo diferente con las pestañas. Cuando el usuario selecciona una pestaña, debe volver a cargar la página por completo. El motivo es que el contenido de cada sección con pestañas es un tanto costoso de renderizar, por lo que no quiero simplemente enviarlos todos a la vez y usar el método normal de alternar 'pantalla: ninguno' para revelarlos.
Mi plan es interceptar el evento select
de las pestañas, y hacer que esa función vuelva a cargar la página manipulando document.location.
¿Cómo, en el controlador select
, puedo obtener el índice de pestañas recientemente seleccionado y el objeto html LI al que corresponde?
$('#edit_tabs').tabs( {
selected: 2, // which tab to start on when page loads
select: function(e, ui) {
var t = $(e.target);
// alert("data is " + t.data('load.tabs')); // undef
// alert("data is " + ui.data('load.tabs')); // undef
// This gives a numeric index...
alert("selected is " + t.data('selected.tabs'))
// ... but it's the index of the PREVIOUSLY selected tab, not the
// one the user is now choosing.
return true;
// eventual goal is:
// ... document.location= extract-url-from(something); return false;
}
});
¿Hay un atributo del objeto de evento o ui que puedo leer que dará el índice, identificación, u objeto de la pestaña recién seleccionada o la etiqueta de anclaje dentro de ella?
¿O hay una forma mejor de usar pestañas para cargar toda la página?
Esta pregunta es de 2 años de edad – jantimon
@Ghommey: y casi 2 años después de nuevo, esta respuesta fue sigue siendo útil para mí –
@MichaelBorgwardt Bueno, eso es genial :) Sin embargo, Klaus y Matt dieron una respuesta similar 2 años antes. – jantimon