Jquery 菜单 onmouseenter 和 mouseleave 奇怪的行为

标签 jquery hover

这是我的 js 菜单,它在悬停时隐藏/显示菜单项... 我有这样的菜单:

    <ul class="main">
        <li class="acro_jq_menu">
            <a href="" title="How to">How to one </a>
            <ul>
                <li>item21</li>
                <li>ite222m1</li>
                <li>item1</li>
            </ul>
        </li>
        <li class="acro_jq_menu">
            <a href="" title="How to">How to Two </a>
            <ul>
                <li>item1</li>
                <li>it2em1</li>
                <li>it41em1</li>
            </ul>
        </li>
   </ul>

这是 JavaScript:

function slideMenu()  {
 var items = $('.main li.acro_jq_menu');
        items.bind({
            mouseenter: function(e) {
                $(this).find('>ul').css({
                    'opacity':0
                }).show().animate(

                {
                    'opacity':1
                },
                500);
            },
            mouseleave: function(e) {
                $(this).find('>ul').fadeOut(100, function() {
                    $(this).hide();
                })
            }
        });   
}

$(document).ready(function(){
        slideMenu();
    });​

一切正常,但有时当我鼠标离开此列表项中的当前 li 内容时,隐藏时间太长(超过 2 秒左右),有时内容根本不显示。我认为 jquery 代码有问题,但我无法弄清楚。

这里是我的代码的 JSfiddle 示例的链接:link

最佳答案

尝试停止事件上的所有动画:

http://jsfiddle.net/6hZuV/4/

function slideMenu()  {
 var items = $('.main li.acro_jq_menu');
        items.bind({
            mouseenter: function(e) {
                $(this).stop(true, true).find('>ul').css({
                    'opacity':0
                }).show().animate(

                {
                    'opacity':1
                },
                500);
            },
            mouseleave: function(e) {
                $(this).stop(true, true).find('>ul').fadeOut(100, function() {
                    $(this).hide();
                })
            }
        });   
}

关于Jquery 菜单 onmouseenter 和 mouseleave 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14158838/

相关文章:

ajax - 使用 jquery 的 $.ajax 获取 node.js 脚本的输出,而不是它的代码

javascript - 表单未在 $.ajax 成功函数中提交

jquery - 加载页面时停止显示 div

jquery - 从jquery中的类名获取元素id

css - 在纯 css 中禁用悬停效果

javascript - 基于 PHP 变量条件的 jQuery 选项卡隐藏

css - 禁用事件链接上的 CSS 悬停效果

css - 用另一个元素的悬停状态改变一个元素的位置

css - 悬停在一个 div 上另一个 div 改变不透明度

javascript - 删除 jQuery 悬停效果