2013-04-15 52 views
0

对不起,因为我的英文不好!但我有这样的问题。家长jquery多级菜单

  1. 这是我的HTML代码(这是一个菜单多层次和级别的菜单是动态的)

    <!-- menu level 1--> 
    <ul class='ul_parent'> 
        <li> 
         <a href='#' class='fNiv'>home</a> 
        </li> 
        <li> 
         <a href='#' class='fNiv'>News</a> 
        </li> 
        <li> 
         <a href='#' class='fNiv'>Product</a> 
         <!-- menu level 2--> 
         <ul class='ul_childrent'> 
         <li> 
          <a href='#'>Type 1</a> 
          <!-- menu level 3--> 
          <ul class='ul_childrent'> 
           <li> 
            <a href='#'>Type 1.1</a> 
            <!--........--> 
            <!-- menu level n--> 
            <!-- ........-->  
            <ul class='ul_childrent'> 
             <li><a href='#' class='menu_level_n'>Type 1.1...n</a></li> 
            </ul> 
           </li> 
           <li><a href='#'>Type 1.2</a></li> 
           <li><a href='#'>Type 1.3</a></li> 
          </ul> 
         </li> 
         <li><a href='#'>Type 2</a></li> 
         <li><a href='#'>Type 3</a></li> 
         </ul> 
        </li> 
    </ul> 
    
  2. 我想,当单击“.menu_level_n”进入设置菜单1级为有效(菜单类.fNiv)。这可能会编码jQuery(它不工作)。

    $(document).ready(function(){ 
          $('.menu_level_n').click(function(){ 
           $(this).parents('.fNiv').addClass('active'); 
          }); 
         }); 
    

请帮帮我!非常感谢。

回答

0

这里是工作一个

$(document).ready(function(){ 
     $('.menu_level_n').click(function(){ 
      $(this).parents('li').last().find('.fNiv').addClass('active'); 
     }); 
    }); 
+0

感谢Aatif Farooq!它适用于我 –

+0

如果它适合你,请将它标记为ansewr ... –

+0

好的。谢谢 :) –

0

具有选择器'.fNiv'的元素不是您单击项目的父项。你需要找到有此选择的元素作为直接子父:

$(this).parents().children('.fNiv').last().addClass('active'); 

JSFiddle

0

变化:

$(this).parents('.fNiv').addClass('active'); 

$(this).parents("li").find('.fNiv').addClass('active'); 
+0

谢谢!它适合我! –

+0

不客气...... :) –

0

可以使用eq()siblings() ..

$('.menu_level_n').click(function(){ 
    $(this).parents().eq(5).siblings('.fNiv').addClass('active'); 
}); 

eq(5)为贵丽是5级的父和兄弟姐妹()