Reputation: 697
I have a menu with two submenus that animate by sliding open when the user clicks on the appropriate menu heading. That function is provided by this code:
$('ul#main_menu > li:has( ul.sub-menu )').click(function()
{
var $sublist = jQuery(this).find('ul:first');
$sublist.slideToggle('fast');
return false;
});
Now, I want to make the first submenu open when the user clicks on a span that I've set up (it has an id
of open_artists
. I've been trying to modify the above code to accomplish that. This works, but opens both submenus. I only want to open the first submenu.
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);
I've tried to modify it to:
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);
But this isn't working. Nor has anything else I've tried.
Upvotes: 0
Views: 72
Reputation: 8765
You should select first ul then find the sublist
function openArtists () {
var $sublist = jQuery('ul#main_menu > li:has(ul.sub-menu)').find('ul').eq(0);
$sublist.slideToggle('fast');
return false;
}
Upvotes: 2