У меня есть фрагмент JavaScript, который я унаследовал; он используется в качестве переключателя вкладок. К сожалению, это не работает. Вот код:
$(document).ready(function(){
/* This is the back button friendly tab switcher */
var trackContainers = $('.switcher > .results');
trackContainers.hide().filter(':first').show();
$(window).bind('hashchange', function () {
var hash = window.location.hash || '#dpp';
console.log('hash: ' + hash);
trackContainers.hide();
trackContainers.filter(hash).show();
$('ul.tabs li').removeClass('active');
$('a[hash='+hash+']').parent().addClass('active');
});
$(window).trigger("hashchange").location(hash);
});
То, что должно произойти, это то, что при нажатии на конкретную вкладку изменяется класс тега li, окружающего нажатую вкладку. Вот как выглядит код вкладки:
<div class="switcher">
<ul class="tabs">
<li class="inactive"><a href="#dpp">Digital Path to Purchase</a></li>
<li class="inactive"><a href="#cre">Fueling Creativity</a></li>
<li class="inactive"><a href="#bpp">Best Practices/Big Picture</a></li>
<li class="inactive"><a href="#si">Shopper Insights 101</a></li>
<li class="inactive"><a href="#dem">Who Is Your Shopper</a></li>
<li class="inactive"><a href="#gt">Google Theater</a></li>
<li class="inactive"><a href="#res">Understanding the Shopper</a></li>
<li class="inactive"><a href="#bar">Brand Activation at Retail</a></li>
<li class="active"><a href="#duc">Deeper Understanding of Center Store</a></li>
</ul>
</div>
</div>
Вы можете видеть, что ссылка с именем #duc имеет активный класс в своем элементе li. Тем не менее, когда я смотрю на код скрипта в Firebug, он выдает мне сообщение о том, что хэш не определен:
Опять же, глядя в Firebug, но на этот раз на вкладке консоли, он очень четко показывает, что хэш определен:
Кто-нибудь может указать, как он теряет свое определение между строкой console.log и .trigger?