Jquery悬停,得到孩子ul并显示

时间:2013-09-25 14:24:36

标签: jquery wordpress

我有一个wordpress网站输出ul如下:

<ul role="primary">
<li class="page_item page-item-7"><a href=" /services/">Services</a>
   <ul class='children'>
      <li class="page_item page-item-23"><a href=" /services/accounts-production/">Accounts Production</a></li>
      <li class="page_item page-item-25"><a href=" /services/audit/">Audit</a></li>
      <li class="page_item page-item-27"><a href=" /services/tax-planning/">Tax Planning</a></li>
      <li class="page_item page-item-29"><a href=" /services/business-startup-advice/">Business Startup Advice</a></li>
      <li class="page_item page-item-31"><a href=" /services/accounting-systems/">Accounting Systems</a></li>
      <li class="page_item page-item-33"><a href=" /services/payroll-bureau/">Payroll Bureau</a></li>
   </ul>
</li>
</ul>

我正在使用jQuery将一个类添加到父级的父li中,我需要它,以便当特定的li悬停在子级上时,ul将显示。

$('ul[role="primary"] li ul.children li').hide();

   $('li:has(> ul)').addClass('parent').mouseover(function() {

   $(this).children().show();

});

但它没有用,有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

$('ul[role="primary"] li ul.children').hide();
$('ul[role="primary"] li').addClass('parent').hover(
    function(){ //mouseenter 
            $(this).find('ul').show();
    }, function(){//mouseexit
        $(this).children('ul').hide();
    });

如您所见,您可以使用find(),children()或任何最适合您代码的遍历。

答案 1 :(得分:0)

你可以在JavaScript中这样做

$('ul[role="primary"] li ul.children li').hide();

$('li').has('ul.children').addClass('parent').mouseover(function() {
   $(this).find('li').show();
});
$('li').has('ul.children').addClass('parent').mouseout(function() {
   $(this).find('li').hide();
});

这里是工作示例jsFiddle

第二部分是再次隐藏!