【发布时间】:2016-07-11 09:05:48
【问题描述】:
我正在创建一个 megamenu,它工作正常,直到我尝试延迟 slideDown。我使用 jQuery。 slideUp 和 slideDown 的代码如下:
$(document).ready(function(){
$(".dropdown").hover(
function() {
$('.dropdown-menu', this).not('.in .dropdown-menu').stop(true,true).delay(500).slideDown("fast");
$(this).toggleClass('open');
},
function() {
$('.dropdown-menu', this).not('.in .dropdown-menu').stop(true,true).slideUp("fast");
$(this).toggleClass('open');
}
);
});
当我刷新页面并将鼠标悬停在“.dropdown”元素上时,它会立即向下滑动。但是,当我再次将鼠标悬停在它上面时,它会延迟得很好,就好像我第一次将鼠标悬停在它上面时调用了它一样。
每个菜单按钮也是如此(分别执行每个“.dropdown”元素)。
我认为错误在于 $(document).ready(),所以我等待整个页面加载,但这并没有帮助。
你对我做错了什么有什么建议吗?
让我给你看我的菜单片段。它还使用引导程序。
<ul class="nav navbar-nav">
<li class="dropdown mega-dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">OLEJE </a>
<ul class="dropdown-menu mega-dropdown-menu">
<li class="col-sm-3">
<ul>
<li class="dropdown-header" style="color:#F96211">Syntetyczne</li>
<li class="divider"></li>
<li><a href="#">Oleje silnikowe 0W30</a></li>
<li><a href="#">Oleje silnikowe 0W40</a></li>
</ul>
</li>
</ul>
</li>
</ul>
我把它拆掉了,所以它只显示了基本的骨架。
【问题讨论】:
-
使用
.stop()和.not('.in .dropdown-menu')很难说它是正确的没有看到最小的HTML 代码示例
标签: javascript jquery css menu