Bootstrap создал серию инструментов, которые он хочет сделать максимально возможными. Это означает, что они хотят позволить разработчику использовать свои инструменты для «прослушивания» ряда «событий» и выполнения последующих действий.
Два указанных в вашем вопросе позволяют разработчику «зацепить» либо в "show" event or "hide" event. (На самом деле на самом деле еще 2 предоставлены бутстрапом [«показаны» и «скрыты»]). Из документации этих события запускаются, когда:
show.bs.tab
пожаров Этого события на закладку шоу, но до того, как новая вкладка была показана. Используйте event.target
и event.relatedTarget
для таргетинга активной вкладки и предыдущей активной вкладки (если доступно) соответственно.
shown.bs.tab
Это событие срабатывает при показе вкладок после показа вкладки. Используйте event.target
и event.relatedTarget
для таргетинга активной вкладки и предыдущей активной вкладки (если доступно) соответственно.
hide.bs.tab
пожары Этого события, когда новая вкладка должны быть указаны (и, таким образом, активная вкладка предыдущей должны быть скрыта). Используйте event.target
и event.relatedTarget
, чтобы настроить таргетинг на текущую активную вкладку и новую вкладку быстрого перехода.
hidden.bs.tab
Это событие срабатывает после отображения новой вкладки (и, таким образом, предыдущая активная вкладка скрыта). Использовать событие.target и event.relatedTarget для таргетинга на предыдущую активную вкладку и новую активную вкладку, соответственно.
Примером того, как это можно использовать, может быть случай «Когда пользователь нажимает на вкладку, прекратите воспроизведение видео на YouTube, обновив его src». Код для чего-то подобного может быть
$('#myTabs').on('show.bs.tab', function(event){
// previous tab
if(event.relatedTarget){
var youtubeIframe = $(event.relatedTarget).find('iframe');
var src = youtubeIframe.attr('src');
youtubeIframe.attr('src', 'about:blank');
youtubeIframe.attr('src', src);
}
});
Кроме того, вы можете настроить таргетинг на вкладку, которая была просто «скрыта». Вместо того, чтобы смотреть на текущую вкладку и, используя его relatedTarget
мы будем использовать hide.bs.tab
событие и использовать event.target
, например, так:
$('#myTabs').on('hide.bs.tab', function(event){
// current tab
if(event.target){
var youtubeIframe = $(event.target).find('iframe');
var src = youtubeIframe.attr('src');
youtubeIframe.attr('src', 'about:blank');
youtubeIframe.attr('src', src);
}
});
NB: Я уверен, что есть более эффективные способы, чтобы остановить воспроизведение видео Youtube. Это используется как пример кода.
Если вы удалили их, и вы не видите изменений в поведении, они могут быть излишними? И вы уверены, что это правильный код для переключения вкладок? –
Скорее всего, код создает и запускает события 'hide/show.bs.tab' – madalinivascu
. Хорошее чтение будет https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events – madalinivascu