Sé que esta pregunta específica se ha hecho antes , pero no obtengo ningún resultado al usar el bind()
evento en el jQuery UI Tabs
complemento.
Solo necesito el index
de la pestaña recién seleccionada para realizar una acción cuando se hace clic en la pestaña. bind()
me permite conectarme al evento select, pero mi método habitual para obtener la pestaña seleccionada actualmente no funciona. Devuelve el índice de pestaña seleccionado anteriormente, no el nuevo:
var selectedTab = $("#TabList").tabs().data("selected.tabs");
Aquí está el código que estoy intentando usar para obtener la pestaña seleccionada actualmente:
$("#TabList").bind("tabsselect", function(event, ui) {
});
Cuando uso este código, el objeto ui vuelveundefined
. De la documentación, este debería ser el objeto que estoy usando para conectarme al índice recién seleccionado usando ui.tab. He intentado esto en la tabs()
llamada inicial y también por sí solo. ¿Estoy haciendo algo mal aquí?
fuente
Si necesita obtener el índice de pestañas desde fuera del contexto de un evento de pestañas, use esto:
Actualización: de la versión 1.9, 'seleccionado' se cambia a 'activo'
fuente
¡¡¡Actualización! Tenga en cuenta: en las versiones más recientes de jQueryUI (1.9+),
ui-tabs-selected
se ha reemplazado porui-tabs-active
. !!!Sé que este hilo es antiguo, peroalgo que no vi mencionado fue cómo obtener la "pestaña seleccionada" (panel desplegable actualmente) desde otro lugar que no sea "eventos de pestaña". Tengo una forma sencilla ...Y para obtener fácilmente el índice, por supuesto, existe la forma que figura en el sitio ...
Sin embargo, podría usar mi primer método para obtener el índice y cualquier cosa que desee sobre ese panel con bastante facilidad ...
PD. Si usa una variable iframe y luego .find ('. Ui-tabs-panel: not (.ui-tabs-hide)'), también le resultará fácil hacer esto para las pestañas seleccionadas en marcos. Recuerde, jQuery ya hizo todo el trabajo duro, ¡no es necesario reinventar la rueda!
Se me planteó la pregunta: "¿Qué pasa si hay más de un área de pestañas en la vista?" Una vez más, piense simple, use mi misma configuración pero use una ID para identificar qué pestañas desea obtener.
Por ejemplo, si tiene:
Y desea el panel actual del segundo conjunto de pestañas:
Y si quieres la pestaña ACTUAL y no el panel (realmente fácil, por eso no lo mencioné antes, pero supongo que lo haré ahora, solo para ser exhaustivo)
Una vez más, recuerde, jQuery hizo todo el trabajo duro, no lo piense tanto.
fuente
Si está utilizando JQuery UI versión 1.9.0 o superior, puede acceder a ui.newTab.index () dentro de su función y obtener lo que necesita.
Para versiones anteriores, use ui.index .
fuente
fuente
¿Cuándo intentas acceder al objeto ui? ui no estará definido si intenta acceder a él fuera del evento de vinculación. Además, si esta línea
se ejecuta en el evento como este:
selectedTab será igual a la pestaña actual en ese momento (la "anterior"). Esto se debe a que el evento "tabsselect" se llama antes de que la pestaña seleccionada se convierta en la pestaña actual. Si aún desea hacerlo de esta manera, usar "tabsshow" en su lugar resultará en selectedTab igual a la pestaña en la que se hizo clic.
Sin embargo, eso parece demasiado complejo si todo lo que desea es el índice. ui.index desde dentro del evento o $ ("# TabList"). tabs (). data ("selected.tabs") fuera del evento debería ser todo lo que necesita.
fuente
esto cambió con la versión 1.9
algo como
debería ser usado. Esto está funcionando bien para mí ;-)
fuente
En caso de que alguien haya intentado acceder a las pestañas desde un iframe, es posible que note que no es posible. El
div
de la pestaña nunca se marca como seleccionado, solo como oculto o no oculto. El enlace en sí es la única pieza marcada como seleccionada.A continuación, obtendrá el
href
valor del enlace, que debería ser el mismo que el ID de su contenedor de pestañas:Esto también debería funcionar en lugar de:
$tabs.tabs('option', 'selected');
Es mejor en el sentido de que en lugar de simplemente obtener el índice de la pestaña, le da la identificación real de la pestaña.
fuente
la forma más sencilla de hacer esto es
y para el índice
fuente
En caso de que encuentre el índice de la pestaña activa y luego apunte a la pestaña activa
Primero obtenga el índice activo
Luego, usando la clase css, obtenga el panel de contenido de la pestaña
ahora envuelto en el objeto jQuery para usarlo más
aquí quiero agregar dos información con la que la clase
.ui-tabs-nav
es para Navegación asociada y.ui-tabs-panel
está asociada con el panel de contenido de la pestaña. en este enlace de demostración en el sitio web de jquery ui, verá que se usa esta clase: http://jqueryui.com/tabs/#manipulationfuente
entonces tendrás el índice de pestaña desde 0
sencillo
fuente
Intente lo siguiente:
fuente
Encontré que el siguiente código hace el truco. Establece una variable del índice de pestaña recién seleccionado
fuente
Puede publicar la respuesta a continuación en su próxima publicación
fuente
Otra forma de obtener el índice de pestañas seleccionado es:
fuente
En la variable url obtendrá el HREF / URL de la pestaña actual
fuente
Puede encontrarlo a través de:
fuente
tome una variable oculta como
'<input type="hidden" id="sel_tab" name="sel_tab" value="" />'
y en el evento onclick de cada pestaña escriba un código como ...puede obtener el valor de 'sel_tab' en la página publicada. :) , sencillo !!!
fuente
Si desea asegurarse de que
ui.newTab.index()
esté disponible en todas las situaciones (pestañas locales y remotas), llámelo en la función de activación como dice la documentación :http://jsfiddle.net/7v7n0v3j/
fuente
fuente