Я знаю, что этот конкретный вопрос задавался раньше , но я не получаю никаких результатов, используя bind()
событие в jQuery UI Tabs
плагине.
Мне просто нужно, чтобы index
из недавно выбранной вкладки выполнялось действие при нажатии на вкладку. bind()
позволяет мне подключиться к событию select, но мой обычный метод получения текущей выбранной вкладки не работает. Он возвращает ранее выбранный индекс вкладки, а не новый:
var selectedTab = $("#TabList").tabs().data("selected.tabs");
Вот код, который я пытаюсь использовать, чтобы получить текущую выбранную вкладку:
$("#TabList").bind("tabsselect", function(event, ui) {
});
Когда я использую этот код, возвращается объект uiundefined
. Из документации это должен быть объект, который я использую для подключения к вновь выбранному индексу с помощью ui.tab. Я пробовал это при первом tabs()
вызове, а также самостоятельно. Я что-то здесь делаю не так?
источник
Если вам нужно получить индекс вкладки вне контекста события вкладок, используйте это:
Обновление: с версии 1.9 «выбранный» изменен на «активный»
источник
Обновить! Обратите внимание: в более новых версиях jQueryUI (1.9+)
ui-tabs-selected
был заменен наui-tabs-active
. !!!Я знаю, что эта ветка устарела, ноя не упомянул о том, как получить «выбранную вкладку» (текущая выпадающая панель) откуда-то, кроме «событий вкладки». У меня есть простой способ ...И, чтобы легко получить индекс, конечно, есть способ, указанный на сайте ...
Однако вы можете использовать мой первый метод, чтобы получить индекс и все, что вы хотите об этой панели, довольно легко ...
PS. Если вы используете переменную iframe, а затем .find ('. Ui-tabs-panel: not (.ui-tabs-hide)'), вам будет легко сделать это и для выбранных вкладок во фреймах. Помните, jQuery уже проделал всю тяжелую работу, не нужно изобретать велосипед!
Мне был задан вопрос: «Что делать, если в представлении есть более одной области вкладок?» Опять же, просто подумайте, используйте ту же настройку, но используйте идентификатор, чтобы определить, какие вкладки вы хотите получить.
Например, если у вас есть:
И вам нужна текущая панель второй вкладки:
И если вам нужна вкладка ФАКТИЧЕСКАЯ, а не панель (очень просто, поэтому я не упоминал об этом раньше, но я полагаю, что сейчас, просто чтобы быть внимательным)
Опять же, помните, jQuery проделал всю тяжелую работу, не думайте так усердно.
источник
Если вы используете JQuery UI версии 1.9.0 или выше, вы можете получить доступ к ui.newTab.index () внутри своей функции и получить то, что вам нужно.
Для более ранних версий используйте ui.index .
источник
источник
Когда вы пытаетесь получить доступ к объекту пользовательского интерфейса? ui будет неопределенным, если вы попытаетесь получить к нему доступ вне события привязки. Кроме того, если эта строка
запускается в таком случае:
selectedTab будет соответствовать текущей вкладке в этот момент времени («предыдущей»). Это связано с тем, что событие «tabsselect» вызывается до того, как выбранная вкладка становится текущей вкладкой. Если вы по-прежнему хотите сделать это таким образом, использование вместо этого tabsshow приведет к тому, что selectedTab будет соответствовать нажатой вкладке.
Однако это кажется слишком сложным, если все, что вам нужно, - это индекс. ui.index из события или $ ("# TabList"). tabs (). data ("selected.tabs") вне события должно быть всем, что вам нужно.
источник
это изменилось с версией 1.9
что-то вроде
должен быть использован. У меня это отлично работает ;-)
источник
Если кто-то пытался получить доступ к вкладкам из iframe, вы можете заметить, что это невозможно.
div
Вкладки никогда не будет помечен как выбранный, так же , как скрытые или не скрыты. Сама ссылка - единственный фрагмент, отмеченный как выбранный.Следующее даст вам
href
значение ссылки, которое должно быть таким же, как идентификатор вашего контейнера вкладок:Это также должно работать вместо:
$tabs.tabs('option', 'selected');
Это лучше в том смысле, что вместо того, чтобы просто получить индекс вкладки, он дает вам фактический идентификатор вкладки.
источник
самый простой способ сделать это
и для индекса
источник
В случае, если вы найдете Active tab Index, а затем укажете на Active Tab
Сначала получите активный индекс
Затем с помощью класса css получите панель содержимого вкладки
теперь обернул его в объект jQuery для дальнейшего использования
здесь я хочу добавить две информации о том, что класс
.ui-tabs-nav
предназначен для навигации и.ui-tabs-panel
связан с панелью содержимого вкладок. в этой демонстрационной ссылке на веб-сайте jquery ui вы увидите, что этот класс используется - http://jqueryui.com/tabs/#manipulationисточник
тогда у вас будет индекс вкладки от 0
просто
источник
Попробуйте следующее:
источник
Я обнаружил, что приведенный ниже код помогает. Устанавливает переменную индекса недавно выбранной вкладки
источник
Вы можете опубликовать ответ ниже в своем следующем сообщении
источник
Другой способ получить индекс выбранной вкладки:
источник
В переменной url вы получите HREF / URL текущей вкладки.
источник
Вы можете найти его через:
источник
возьмите скрытую переменную, например,
'<input type="hidden" id="sel_tab" name="sel_tab" value="" />'
и на каждой вкладке события onclick напишите код, например ...вы можете получить значение 'sel_tab' на опубликованной странице. :) , просто !!!
источник
Если вы хотите убедиться, что
ui.newTab.index()
он доступен во всех ситуациях (локальные и удаленные вкладки), вызовите его в функции активации, как сказано в документации :http://jsfiddle.net/7v7n0v3j/
источник
источник