【发布时间】:2014-10-12 03:41:48
【问题描述】:
我有一个带有两个子菜单的菜单,当用户单击相应的菜单标题时,它们会通过滑动打开动画。该功能由以下代码提供:
$('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);
但这不起作用。我也没有尝试过其他任何方法。
【问题讨论】:
-
你也可以添加你的 html 模型吗?也可以尝试用
.eq(0)代替.first()。在我们看到您的 HTML 之前,不确定它是否会起作用。 -
要回答这个问题,我们需要查看您的相关 (MCVE) HTML。