jQuery仅将功能应用于类和父元素
我有以下清单:jQuery仅将功能应用于类和父元素,jquery,html,css,Jquery,Html,Css,我有以下清单: <ul> <li class="topCurrent">One <ul> <li>One-1 <ul> <li>One-1.1 <ul> <li class="current">One-1.1.1
<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>
这样做的目的是将所有ul隐藏在顶级ul之下,直到出现悬停
我想做的是:
如果一个li有一个class=“current”
我希望该结构打开,直到电流到达该点为止。它仍然允许在悬停状态下显示其下方的ul以及任何其他ul,但在任何时候都不会隐藏class=“current”
的父级
建议?这个问题快把我逼疯了
谢谢 这应该是您所需要的全部:
$("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
(使用hover而不是hoverIntent以便于演示)。只需将hoverIntent调用更改为以下内容:
$("ul li").hoverIntent(
function(){
$(this).children('ul').slideDown('fast');
},
function(){
$(this).children('ul').not($('.current').parents()).slideUp('fast');
}
);
p.S.应该提到,我的答案是指我的答案。
P.P.S.希望我的调试时间因为你引用了那篇文章而没有更改类名而减少。太棒了!谢谢。:)
$("ul li").hoverIntent(
function(){
$(this).children('ul').slideDown('fast');
},
function(){
$(this).children('ul').not($('.current').parents()).slideUp('fast');
}
);