Ответ 1
Попробуйте $(e.target).attr('href')
.
Мне нужно "reset" часть информации о странице на основе выбранной вкладки в разделе вкладки jQuery начальной загрузки.
Документы показывают это событие, которое именно то, что мне нужно: http://twitter.github.com/bootstrap/javascript.html#tabs
$('a[data-toggle="tab"]').on('shown', function (e) {
e.target // activated tab
e.relatedTarget // previous tab
})
Мне нужно получить атрибут "href" e.Target
и e.relatedTarget
, который однозначно идентифицирует эти 2 вкладки и 2 панели вкладок, с которыми они связаны.
Здесь моя проблема: объект e
- это некоторый объект, которого я не ожидал или не использовал. Я не могу использовать ни один из методов jQuery, таких как e.target.attr('href')
- все обычные методы jquery, к которым я привык, исчезли. Я попытался получить доступ к нему как атрибут исходного объекта - e.href
и получил https://127.0.0.1/test?action=view#tab-a"
not #tab-a
Я могу написать обходной путь с этим, но я явно делаю что-то неправильно. Должен быть простой способ напрямую получить #tab-a
из e.Target
- но я не могу понять это.
Попробуйте $(e.target).attr('href')
.
Позднее вечеринке здесь будет мое взятие:
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
e.currentTarget ...
});
e.currentTarget - это текущий якорь, только что нажатый
Если кому-то нужно знать, какой индекс вкладки выбран в настоящий момент, не вручную подсчитав его в DOM.
Использовать случай:, когда #hrefs обновляется динамически, и вы можете ретранслировать по индексу вкладки.
Функция jQuery .index()
возвращает целое число, указывающее положение первого элемента в объекте jQuery относительно его элементов-близнецов.
var el = jQuery('#some .thing'); // some DOM node that contains tab html structure
var tab_list = el.find('.tabbable').first().find('a[data-toggle="tab"]');
// event namespace ".bs.tab" is important in some versions of Bootstrap
tab_list.on('shown.bs.tab', function(e){
// zero based index
// jQuery function `.index()` returns zero-based DOM "order" index
tab_index = $(e.target).parent().index();
// store this index to cookie or somwhere
// so that you can show that tab again when user comes back to page
// or makes a page refresh (F5)
});
Все это должно работать.
$(e.target).attr('href');
e.target.hash;
$(this).attr('href');
this.hash