2014-10-11 2 views
0

У меня есть меню с двумя подменю, которые оживляют, открываясь, когда пользователь нажимает на соответствующий заголовок меню. Эта функция обеспечивается этим кодом:.Как извлечь только первый элемент из объекта jQuery?

$('ul#main_menu > li:has(ul.sub-menu)').click(function() 
    { 
     var $sublist = jQuery(this).find('ul:first'); 
     $sublist.slideToggle('fast'); 

     return false; 
    }); 

Теперь я хочу, чтобы сделать первое подменю открытым, когда пользователь нажимает на пролете, что я настроил (он имеет id из open_artists Я был .., пытаясь изменить приведенный выше код для выполнения, что это работает, но открывает оба подменю Я только хочу, чтобы открыть первое подменю

function openArtists() { 

     var $sublist = jQuery('ul#main_menu > li:has(ul.sub-menu)').find('ul:first'); 
     $sublist.slideToggle('fast'); 

     return false; 

} 

$('#open_artists').click(openArtists); 

Я попытался изменить его:.

function openArtists() { 

     var $sublist = jQuery('ul#main_menu > li:has(ul.sub-menu)').find('ul:first'); 
     var $firstsublist = jQuery('$sublist').first(); 
     $firstsublist.slideToggle('fast'); 

     return false; 

} 

$('#open_artists').click(openArtists); 

Но это не работает. Ничего другого я не пробовал.

+0

Можете ли вы добавить свой HTML макет тоже? Также попробуйте '.eq (0)' вместо '.first()'. Не уверен, что это сработает, пока мы не увидим ваш HTML. – Newtt

+0

Чтобы ответить на этот вопрос, нам нужно будет увидеть ваш соответствующий ([MCVE] (http://stackoverflow.com/help/mcve)) HTML. –

ответ

2

Вы должны выбрать первый ул затем найти подсписок

function openArtists() { 

     var $sublist = jQuery('ul#main_menu > li:has(ul.sub-menu)').find('ul').eq(0); 
     $sublist.slideToggle('fast'); 

     return false; 

} 
+0

Отлично, сэр. Спасибо! – PapaHotelPapa

+0

ваш приветственный брат .. –

Смежные вопросы