Запустить функцию, когда вкладка jQuery UI нажата / активирована?

Я использую вкладки jQuery, а содержимое одной из вкладок извлекается с помощью вызова AJAX. Но я не хочу инициировать вызов до тех пор, пока не будет нажата вкладка (сделана активной), поскольку пользователь не обязательно щелкает по ней. Какой лучший способ сделать это?

JQuery UI обеспечиваетselect а такжеshow события для вкладок, но они запускаются, когдаany Вкладка выбрана или показана, а не только конкретная (насколько я знаю).

Я также пытался назначитьclick событие для идентификатора конкретной вкладки:

$("#my-tab").click(function(){
...
     $.post(URL, function(data){
          ...
     });
...
}

Но это, похоже, не имеет никакого эффекта, и вызов никогда не срабатывает.

Ответы на вопрос(4)

/*tab placeholder*/.tabs({
    select: function(event, ui) {
       if(ui.item.id === "my-tab"){
           //explicitly trigger mouse click on tab
           $(ui.item).trigger('click');
       }
    }
});
//------------------
$("#my-tab").click(function(){
    alert('something')
});
Решение Вопроса

которая срабатывает при выборе вкладки.

$( ".yourTab" ).tabs({
   select: function(event, ui) {
        if(ui.index == myTabIndex) {
            $.post(URL, function(data){
              ...
            });
        }
   }
});

Note использованиеactivate для новых версий.

ссылка

 12 июл. 2012 г., 20:31
@daGUY Добро пожаловать :)
 30 окт. 2014 г., 20:57
@ Попо, я думаю, это было заменено наactivate.
 30 окт. 2014 г., 20:48
@RicardoAlvaroLohmann это прекрасно работает, но я не вижу объект select: в документации, искал там до того, как нашел это.
 daGUY12 июл. 2012 г., 20:29
Работал отлично! Я не знал, как использоватьselect только для конкретной вкладки. Спасибо!

JQuery-UI изменился, Также вам нужно вызывать функцию вкладок для всего набора вкладок, а не только для одной вкладки. И ui.index нужно заменить. Если 2-я панель имеет идентификатор «tab2» тогда вы можете использовать:

$("#tabs").tabs({
    activate: function(event, ui) {
       if (ui.newPanel.selector == "#tab2") {
            alert("tab 2 selected");
       }
    }
});
 07 дек. 2017 г., 21:59
это спасибо
 29 сент. 2017 г., 07:50
это работает на меня.

select событие имеетui параметр, где вы можете проверитьindex Вкладки пользовательского интерфейса jQuery Получить выбранный в данный момент список вкладок

Затем вы можете сделать вызов Ajax, когда вы проверилиindex вкладки.

РЕДАКТИРОВАТЬ: У вас также есть много примеров в официальном документе JQuery UI здесь:http://docs.jquery.com/UI/Tabs

Ваш ответ на вопрос