菜单的jQuery延迟

时间:2012-02-20 18:28:54

标签: jquery jquery-ui

有人可以解释当鼠标离开#categories_block_top .tree ul时如何延迟下拉?对不起,我是jQuery的新手。这是菜单的链接 - http://livedemo04.prestatrend.com/和js-file,是treeManagementTop.js。

5 个答案:

答案 0 :(得分:1)

如果您使用了hoverIntent插件并且出现错误“makeTall未定义”,请检查您是否添加了该功能 例如在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>

希望这会有所帮助:)

答案 1 :(得分:0)

jQueryElement.find('ul:first').stop(true,true).hide(100);
jQueryElement.find('ul:first').stop(true,true).slideUp(100);

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

答案 4 :(得分:0)

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