首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery仅将功能应用于类和父元素

jQuery仅将功能应用于类和父元素
EN

Stack Overflow用户
提问于 2010-05-19 03:00:45
回答 2查看 262关注 0票数 2

我有以下列表:

代码语言:javascript
复制
<ul>
<li class="topCurrent">One
    <ul>
        <li>One-1
            <ul>
                 <li>One-1.1
                     <ul>
                         <li class="current">One-1.1.1
                             <ul>
                                 <li>One-1.1.1.1</li>
                                 <li>One-1.1.1.2</li>
                                 <li>One-1.1.1.3</li>
                             </ul>
                         </li>
                         <li>One-1.1.2</li>
                     </ul>
                 </li>
                 <li>One-1.2</li>
            </ul>
        </li>
        <li>One-2</li>
        <li>One-3</li>
    </ul>
</li>
<li>Two
    <ul>
        <li>Two-1</li>
        <li>Two-2</li>
    </ul>
</li>

使用以下jQuery:

代码语言:javascript
复制
$("ul li ul").hide();

$("ul li").hoverIntent(
    function(){
        $(this).children('ul').slideDown('fast');
    },
    function(){
       $(this).children('ul').slideUp('fast');
    }
);

这样做的目的是将所有的ul隐藏在顶层ul下面,直到悬停在它上面。

我想做的是:

如果安莉有一个class="current",我希望这个结构是开放的,直到电流被击中为止。它仍然允许在悬停状态下显示它下面的ul,以及任何其他ul,但是class="current"的父级不会被隐藏。

有什么建议吗?这个问题快把我逼疯了。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2010-05-19 03:28:21

这应该是您需要的全部内容:

代码语言:javascript
复制
$("ul li:not(:has(li.current))")
   .find("ul").hide().end() // Hide all other ULs
   .hoverIntent(
        function(){
            $(this).children('ul').slideDown('fast');
        },
        function(){
           $(this).children('ul').slideUp('fast');
        }
    );

这将使悬停功能不会应用于任何将li.current作为子级的LI。

Here is a demo (使用hover代替hoverIntent以便于演示)。

票数 2
EN

Stack Overflow用户

发布于 2010-05-19 03:50:16

只需将您的hoverIntent调用更改为以下内容:

代码语言:javascript
复制
$("ul li").hoverIntent(
    function(){
        $(this).children('ul').slideDown('fast');
    },
    function(){
       $(this).children('ul').not($('.current').parents()).slideUp('fast');
    }
);

附注:我的答案参考了Nick Craver的答案,当you asked this question before。P.P.S.希望我的调试时间已经减少了,因为你引用了那篇文章,而不是更改类名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2860199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档