2014-01-07 3 views
0

Мне нужно получить доступ к некоторым элементам внутри вкладки при нажатии пользователем на вкладке.Как получить доступ к элементам на вкладке jQuery

$('.myTabs').tabs({ 
    activate: function(event,ui){ 
     console.log("Give me some tab contents here..."); 
    } 
}); 

PS: Я не могу использовать идентификатор, чтобы перейти непосредственно к моей вкладке, потому что делает серверные несколько вкладок с различными идентификаторами.

У кого-нибудь есть идеи?

+0

Какие именно элементы вы хотите ссылаться на вкладке? – gfrobenius

+0

Давайте просто скажем несколько текстовых полей. – RealityDysfunction

+1

Я думаю, вы можете использовать свойство 'newPanel' параметра' ui'. –

ответ

3

Используйте newPanel свойство параметра ui:

$('#tabs').tabs({ 
    activate: function(event,ui) { 
     console.log(ui.newPanel.find('p').text()); 
    } 
}); 

Примечание: Свойство ui.newPanel является объектом JQuery.

Для получения дополнительной информации см. jQuery UI Tabs documentation.

jsfiddle

+0

Молодец, вот и все. – RealityDysfunction

+0

@RealityDysfunction - я обновил код, чтобы удалить ненужный вызов '$()'. Оказывается, значение 'ui.newPanel' является объектом jQuery, а не элементом DOM. –

1

Здесь вы идете: http://jsfiddle.net/RNvwv/6/

$('.myTabs').tabs({ 
    activate: function(event,ui){ 
     //alert(ui.newTab.index()); 
     //console.log(ui); 
     //console.log(ui.newPanel.selector); 
     //Here is how to reference a text value in the tab you are clicking on... 
     alert($(ui.newPanel.selector+' [name^="myField"]').val()); 
    } 
}); 

Очевидно, что вы могли бы изменить селектор для текстовых полей, чтобы быть на конкретном ID или что-то другое. Я пошел с именем, которое начинается с «myField», так что, когда вы переходите на вкладку 2, он находит "myField2", и когда вы вернетесь на вкладку 1, он найдет "myField1".

Смежные вопросы