2014-10-11 52 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

相關問題