Добавление атрибута данных к исходным элементам a
.( рабочий образец - поскольку CSS не был предоставлен, стили не совсем правильные, но вы поняли).
<ul id="menu">
<li><a href="#" data-slide="1">Item 1</a></li>
<li><a href="#" data-slide="2">Item 2</a></li>
<li><a href="#" data-slide="3">Item 3</a></li>
<li><a href="#" data-slide="4">Item 4</a></li>
</ul><!-- end #menu -->
Тогда ваш JS может извлечь этот идентификатор, чтобы показатьправильные связанные подменю и содержимое.
$('#menu li a').click(function () {
//Fetch the value of the 'slide' data attribute of the clicked link
var id = $(this).data('slide');
$('.submenu, .hero').hide();
$('#menu li').removeClass('active');
$('.submenu-'+id+', .hero-'+id).slideDown('normal');
});
$('.submenu, .hero').hide();
Преимущество использования этого метода по сравнению с некоторыми другими упомянутыми методами (например, .eq()
или .index()
) заключается в том, что вы можете изменить порядок заказа.оригинальных пунктов меню, и это не будет отбрасывать, какой элемент контента извлекается.Так что этот HTML все равно будет работать отлично ...
<ul id="menu">
<li><a href="#" data-slide="3">Item 3</a></li>
<li><a href="#" data-slide="1">Item 1</a></li>
<li><a href="#" data-slide="4">Item 4</a></li>
<li><a href="#" data-slide="2">Item 2</a></li>
</ul><!-- end #menu -->