как получить доступ к индексу вкладок jqueryui с помощью события «load»

0

Поэтому я использую вкладки jqueryui (1.10.4) с ленивой загрузкой, и я знаю, как увидеть огонь события загрузки, однако каждая вкладка будет иметь форму на нем, и (я думал) мне нужно было связать события с нажатием кнопки мыши на каждое событие вкладки. но я не знаю, как определить, какая вкладка была загружена. Я могу сказать (с активированным событием), какая вкладка выбрана, но мне нужно знать, когда загружается конкретная вкладка.

любые советы приветствуются.

$(function() {


$("#tabs").tabs({
    load: function( event, ui ) {

//          console.log(ui.tab.id);

    },

    activate: function( event, ui ) {

        var $activeTab = $('#tabs').tabs('option', 'active');
        switch($activeTab) {
            case 0:
// **************************************************************               
// Tab #1 here 
// **************************************************************
                console.log("first tab");
                break;
            case 1:
// **************************************************************
// Tab #2 here          
// **************************************************************
                console.log("second tab");
                break;


            default:
            // No tab code
        }

    }
})

//    $("#tabs").bind("tabsload", function(e, tab) {
//        alert("The tab at index " + tab.index + " was selected");
//    });


})
  • 0
    Событие load будет запускаться только при загрузке вкладки, которая использует AJAX для получения своего содержимого. Используете ли вы AJAX для загрузки форм на этих вкладках?
  • 0
    да, извините, я должен был это указать. и событие загрузки было запущено, я просто не знал, как определить, какая вкладка была загружена ...
Теги:
events
tabs

1 ответ

0
Лучший ответ

В вашей функции загрузки ui.panel является ссылкой на загруженную вкладку. Например:

$(function() {


    $("#tabs").tabs({
        load: function( event, ui ) {

            console.log(ui.panel);
            console.log(ui.panel.attr('id'));

            if(ui.panel.attr('id') == 'panel-1'){
                // bind click events on #panel-1 form
            }

        }
    });


})

Альтернативно - вы можете изучить метод jQuery.on() для привязки обработчика событий при загрузке страницы.

  • 0
    Это потрясающе, хотя в результате получается «ui-tabs-x», а не «panel-x», но это прекрасно работает. Огромное спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню