2014-10-11 91 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; 
    }); 

现在,我要让第一个子菜单打开的时候对我已经成立了一个跨用户点击(它具有open_artistsid我一直。试图修改上面的代码来完成这个工作,但打开两个子菜单,我只是想打开第一个子菜单

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 2014-10-11 19:05:47

+0

要回答这个问题,我们需要查看您的相关([MCVE](http://stackoverflow.com/help/mcve))HTML。 – 2014-10-11 19:06:01

回答

2

你应该首先选择UL然后找到子列表

function openArtists() { 

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

     return false; 

} 
+0

非常好,先生。谢谢! – PapaHotelPapa 2014-10-12 02:31:14

+0

您的欢迎兄弟 – 2014-10-12 05:48:31

相关问题