0

对不起,因为我的英语不好!但我有这样的问题。

  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');
                 });
           });
    

请帮我!非常感谢。

4

4 回答 4

0

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

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

JSFiddle

于 2013-04-15T10:49:44.350 回答
0

改变:

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

$(this).parents("li").find('.fNiv').addClass('active');
于 2013-04-15T10:50:49.453 回答
0

这是工作的

  $(document).ready(function(){
         $('.menu_level_n').click(function(){
             $(this).parents('li').last().find('.fNiv').addClass('active');
         });
   });
于 2013-04-15T10:50:57.593 回答
0

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

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

eq(5)因为您的 li 是第 5 级父母和兄弟姐妹()

于 2013-04-15T10:54:48.140 回答