:visible 在执行动画时总是返回 true
我有 4 个菜单下拉列表,我绑定了一个单击来调用切换列表项的函数。
如果我单击所有 4 个菜单,所有 4 个列表项将切换显示。 但是,我想这样做,以便当我单击项目本身时,当前显示的菜单的其余部分应该切换和隐藏。
这就是我如何进行检查,但它似乎不起作用。
JavaScript:
test.$sections //$('#nav').find('>li')
.find('ul')
.filter(':visible')
.parent()
.each(test.toggleItemNav);
'toggleItemNav' : function() {
var $li = $(this);
$li.find('ul')
.stop(true, true
.animate({ opacity: 'toggle', height: 'toggle' },{duration: 800, specialEasing: { opacity:'easeOutExpo', height: 'easeOutExpo' }});
},
html
<ul id="nav">
<li class="11">11
<ul>
<li><a>1</a></li>
<li><a>2</a></li>
<li><a>3</a></li>
</ul>
</li>
<li class="22">22
<ul>
<li><a>1</a></li>
<li><a>2</a></li>
<li><a>3</a></li>
</ul>
</li> .... and so on
i have 4 menu drop down list that i bind a click that calls to a function that toggles the list items.
If i click on all 4 menus all 4 list items will be toggled to show.
However, i want to make it so that when i click on the items itself, the rest of the menu that are current showing should toggle and hide.
heres how i do the check but it doesnt seem to work.
javascript:
test.$sections //$('#nav').find('>li')
.find('ul')
.filter(':visible')
.parent()
.each(test.toggleItemNav);
'toggleItemNav' : function() {
var $li = $(this);
$li.find('ul')
.stop(true, true
.animate({ opacity: 'toggle', height: 'toggle' },{duration: 800, specialEasing: { opacity:'easeOutExpo', height: 'easeOutExpo' }});
},
html
<ul id="nav">
<li class="11">11
<ul>
<li><a>1</a></li>
<li><a>2</a></li>
<li><a>3</a></li>
</ul>
</li>
<li class="22">22
<ul>
<li><a>1</a></li>
<li><a>2</a></li>
<li><a>3</a></li>
</ul>
</li> .... and so on
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在设置动画时在对象上设置属性并将其过滤掉:
You could set a property on your object while animating and filter that out: