Jquery 动画停止显示中存在问题隐藏在菜单中

Jquery 动画停止显示中存在问题隐藏在菜单中,jquery,jquery-animate,Jquery,Jquery Animate,问题是,我不明白为什么动画子菜单显示不起作用。 当我注释掉“.stop()”和“.animate()”并取消注释“.css()”行时,我大致得到了所需的内容。我不明白为什么动画和停止都不起作用 我的js部分: function sub_menu_disp(a){ a.children('div') .stop() .animate({'display':'block'},'slow'); //.css({'display':

问题是,我不明白为什么动画子菜单显示不起作用。 当我注释掉“.stop()”和“.animate()”并取消注释“.css()”行时,我大致得到了所需的内容。我不明白为什么动画和停止都不起作用

我的js部分:

    function sub_menu_disp(a){
        a.children('div')
        .stop()
        .animate({'display':'block'},'slow');
        //.css({'display':'block'});
    };

    function sub_menu_hide(a){
        a.children('div')
        .stop()
        .animate({'display':'none'},'slow');
        //.css({'display':'none'});
    };

    $(document).ready(function(e){
        $('#one,#two')
            .children('div')
            .hide()
            .css({'overflow':'hidden'});

        $('#one,#two').bind('mouseover',function(){
            sub_menu_disp($(this));
        });

        $('#one,#two').bind('mouseout',function(){
            sub_menu_hide($(this));
        });
    });
我的html部分:

    <div id='one'>
        <p>level 1</p>
        <div>
            <div>sublevel 1a</div>
            <div>sublevel 1b</div>
            <div>sublevel 1d</div>
        </div>
    </div>
    <hr />
    <div id='two'>          
        <h5>level 2</h5>
        <div>
            <div><a href='javascript:alert("hello world");'>js alert</a></div>
            <div><a href='http://facebook.com'>facebook             </a></div>
            <div><a href='http://twitter.com'>twitter               </a></div>
            <div><a href='http://google.com'>google                 </a></div>
        </div>
    </div>

一级

次级1a 次级1b 次级1d
二级
我在这里保留了我的完整示例:


提前感谢。

我认为
动画
仅适用于数字css属性。您可以使用
show('slow')
hide('slow')


从最终用户的角度来看——悬停是个坏主意:你想给访问者留下深刻印象的意图可能会变成“一种不稳定的”体验
使用单击
我可以向你推荐这样的吗


如果您仍想使用“悬停”功能…
只需更改第2行:

$('.el>*').mouseenter(function() {

您是否考虑过使用现有的手风琴菜单插件?有几十个这样的插件。@mu他真的需要一个完整的插件吗?@roXon:如果它是基于悬停的,并且两个(当前)答案都不适用于悬停,那么很难让行为正确。既然已经有几个可用的插件可供选择,为什么还要重新发明轮子呢?@mu——我真的不需要一个完整的插件。我更喜欢一个小房间,你知道我对“重新发明轮子”的看法吗。如果不是:“有时改造车轮……使车轮更圆”:D;)您可能希望使用
。鼠标悬停
而不是
鼠标悬停/mouseover
,当您将鼠标悬停在内部
上时,鼠标悬停会立即启动。但如果您将鼠标上下移动的速度快于
'slow'
,则会看到跳跃。我不是想给你们一个难堪的时刻,只是基于悬停的手风琴很难正确演奏。@mu是的,我理解。我想最好避免使用基于悬停的UI,或者使用经过战斗测试的插件,而不是使用自己的插件。+1是一个很好的答案,并有助于你的“接受”评论。thx@roXon--是的,我明白这一点。我已经添加了一个选项,可以在单击和悬停之间进行选择。我个人选择点击,但有人告诉我更喜欢悬停…很高兴它能起作用。您也可以使用上面编辑的mouseenter@maan81@maan81你应该始终接受解决问题的答案。请看报纸。很抱歉耽搁了。我在悬停时有点小问题。当我从主菜单移到子菜单时,子菜单将隐藏。我想知道,只要指针也在子菜单上,我是否可以通过不隐藏子菜单来让它变得更好。
$('.cont').hide();
$('.el>*').click(function() {
    var d = $(this).next('.cont');
    check = (d.is(':visible')) ? d.slideUp() : ($('.cont').slideUp()) (d.slideDown());
});
$('.el>*').mouseenter(function() {