菜单的jQuery延迟

Posted

技术标签:

【中文标题】菜单的jQuery延迟【英文标题】:jQuery delay for menu 【发布时间】:2012-03-11 02:34:32 【问题描述】:

有人可以解释当鼠标从#categories_block_top .tree ul 出来时如何延迟下拉?抱歉,我是 jQuery 的新手。这是链接 - http://livedemo04.prestatrend.com/ 和 js 文件,菜单是 treeManagementTop.js。

【问题讨论】:

您应该在问题中发布一些代码。特别是对于未来的访问者,在这里查看代码会很有帮助,因为您提供的链接可能并不总是它的稳定来源。 【参考方案1】:

如果您使用了 hoverIntent 插件并且收到错误“makeTall is not defined”,请检查您是否添加了该功能 例如在 hoverIntent 主页的源代码中,它看起来像:

<script type="text/javascript" charset="utf-8">
    $(document).ready(function()
        $("#demo1 li").hover(makeTall,makeShort);
        $("#demo2 li").hoverIntent(makeTall,makeShort);
        $("#demo3 li").hoverIntent(
            over: makeTall, 
            timeout: 500, 
            out: makeShort
        );
    ); // close document.ready

    function makeTall()  $(this).animate("height":75,200);
    function makeShort() $(this).animate("height":50,200);
</script>

但我在没有插件的情况下使用了另一种方式:

 <ul id="elem">
<li><a href="#"><span>1</span></a>
<ul id="child" style="display:none;">
   <li ><a href="">Home</a></li>
       <li ><a href="">About</a></li>
       <li ><a href="">Contacts</a></li>
       <li ><a href="">FAQ</a></li>
</ul>
 </ul>

 <script type="text/javascript">
$(function()
   $('#elem').mouseenter(function()
    $('#ch').css('display', 'block');
   );
   $('#elem').mouseleave(function()
    $('#ch').delay(800).fadeOut('slow');
   );
    );
 </script>

希望这会有所帮助:)

【讨论】:

【参考方案2】:
jQueryElement.find('ul:first').stop(true,true).hide(100);
jQueryElement.find('ul:first').stop(true,true).slideUp(100);

这两行:您可以通过将 100 增加到更大的数字来将菜单速度调整为较慢。

【讨论】:

【参考方案3】:

还要添加延迟,请参阅以下内容: Jquery - Delay mouseout event Fade out jQuery menu after delay

【讨论】:

刚刚添加了这个插件但是有一个错误 - makeTall is not defined 什么问题? 你添加了哪个插件?这只是在您加载后发生的吗? jquery.hoverIntent.minified.js 是的,一旦我加载它就会发生。 livedemo04.prestatrend.com 你试过setTimeout吗? mouseout: function() setTimeout(function() $c('hide!'); hideUnderConstruction(); , 500); 我从未使用过 hoverIntent 插件,所以对此我无能为力。【参考方案4】:

查看 jQuery hoverIntent 插件:

http://cherne.net/brian/resources/jquery.hoverIntent.html

【讨论】:

刚刚添加了这个插件但是有一个错误 - makeTall is not defined 什么问题? 听起来您缺少一项必需的功能。如果您不需要“makeTall”函数,只需传递一个空函数定义即可。这可能会有所帮助:***.com/questions/2196429/…【参考方案5】:

您可以查看 hoverIntent 插件,让您定义一些有助于鼠标输入/输出交互的变量:http://cherne.net/brian/resources/jquery.hoverIntent.html

【讨论】:

刚刚添加了这个插件但是有一个错误 - makeTall is not defined 什么问题?

以上是关于菜单的jQuery延迟的主要内容,如果未能解决你的问题,请参考以下文章

自定义jQuery延迟下拉菜单小部件

下拉菜单在第一页加载时出现延迟

Bootstrap 4 崩溃有延迟

下拉菜单 JavaScript 延迟

css下拉菜单悬停时延迟1秒

延迟jquery悬停事件?