【发布时间】:2014-01-26 16:58:59
【问题描述】:
解释起来很复杂:
- 我有一个“触发器”div / 类 (.trigger)
- 如果点击(.triggercontainer),此 div 会滑动打开并显示内容
- 此外,当它悬停时,它会滑动打开一个子菜单。 (.submenu)
- 当我打开菜单时,我希望禁用悬停功能(因此子菜单始终可见,并且在我离开触发器时不再消失)
- 当我再次关闭此 div 时,我希望子菜单关闭(并再次开始对悬停动作做出反应)
重要:每个类都有多个实例,这意味着全局变量可能不起作用(?)。
我要做什么:
- 悬停时显示子菜单
- 点击展开内容(触发容器)
- 再次点击时折叠内容并隐藏子菜单
什么不起作用:
- 如果我悬停展开的内容,子菜单仍会切换其可见性
这是我滑动打开内容的代码:
$('.trigger').click(function() {
$(this).find('.triggercontainer').slideToggle(250);
});
这是在内容折叠时隐藏子菜单的半功能代码
$('.trigger').click(function() {
state = $(this).data('state');
if(state == "on" || typeof(state) == "undefined"){
$(this).find( ".submenu" ).show();
$(this).data('state','off');
} else if(state == "off") {
$(this).find( ".submenu" ).slideUp(50);
$(this).data('state','on');
}
});
这是滑动打开子菜单的代码
$('.release').on({
mouseenter:function(){
$(this).find( ".submenu" ).slideDown(50);
},
mouseleave:function(){
$(this).find( ".submenu" ).slideUp(50);
}
});
相当混乱,嗯?我是一个真正的新手,我会很感激任何命中:)
编辑:
这是我的 html 结构:
<div class="trigger">
<div class="menu">
<div class="submenuheader">(always visible)</div>
<div class="submenu">(expands when trigger is hovered)</div>
</div>
<div class="triggercontainer">(expands when trigger is clicked)</div>
</div>
【问题讨论】:
-
你也可以显示html结构吗?只为其中一个元素
-
当然——我在上面添加了。
标签: jquery css slider conditional submenu