Это должно работать:
http://jsfiddle.net/WwfFE/5/
Я просто помещаю все ваши URL в массив.Когда пользователь решает покинуть вкладку, я очищаю src
от iframe
, чтобы видео «перестало» воспроизводиться.
Впервые ваша переменная currentTab
все еще пуста, поэтому яполучить его, посмотрев, у какого класса <li>
установлен active
.Из этого <li>
я беру ссылку и устанавливаю для переменной currentTab
значение href
.
if (currentTab == '') {
//Find current tab:
currentTab = $('#tabs ul li.active').find('a').attr('href');
}
//Stop playing video:
if (currentTab != '')
$('div#' + currentTab).find('iframe').attr('src', '');
Когда он возвращается на любую вкладку, вы не должны забывать установить src
обратнохотя, иначе ваш iFrame будет пустым.Это то, что я делаю здесь:
var index = $(this).attr('id');
$('div#' + currentTab).find('iframe').attr('src', urls[index]);
Этот код все еще можно оптимизировать, хотя для уменьшения мерцания.Самый простой способ сделать это - установить функцию на load
триггер iframe
.Таким образом, вы узнаете, когда видео было успешно установлено, и именно тогда вы хотите показать вкладку пользователю.