【问题标题】:jquery, issue with togglejquery,切换问题
【发布时间】:2013-09-05 12:06:48
【问题描述】:

当鼠标悬停在 div .frame 上时,我想在该 div .frame 内切换 div .content 当鼠标离开 .frame 时,我希望 .content 再次切换并删除。

它可以工作,但我有几个问题,首先当鼠标不在 .frame 时,.content 没有切换,但它只是删除而没有任何影响。

然后当鼠标悬停在 .content(在 .frame 内)上时,.content 正在移除...

我的代码是:

$(document).on('mouseover', '.frame', function() {
    var el = $(this);
    el.find('.inside').append('<div class="content"></div>');
    var content = $('.content:last');
    content.hide();
    content.html('aaaaaaaaaaaa<br>aaaaaaaaaaaa<br>aaaaaaaaaaaa<br>aaaaaaaaaaaa<br>');
    $('.content').toggle(300);
}).on('mouseout', function() {
    var content = $('.content:last');
    $('.content').stop().toggle(300).remove();
}); 

这里有一个 jsFiddle:http://jsfiddle.net/HAxPB/

【问题讨论】:

    标签: jquery toggle mouseover


    【解决方案1】:

    您必须使用回调函数来等到效果完成。并改用mouseentermouseleave。代码还有一个小问题:.on('mouseout', function() {,应该是.on('mouseleave',",frame", function() {,

    $(document).on('mouseenter', '.frame', function() {
        if ( $('.content').length > 0){
            return;
        }
        var el = $(this);
        el.find('.inside').append('<div class="content"></div>');
        var content = $('.content:last');
        content.hide();
        content.html('aaaaaaaaaaaa<br>aaaaaaaaaaaa<br>aaaaaaaaaaaa<br>aaaaaaaaaaaa<br>');
        $('.content').toggle(300);
    }).on('mouseleave','.frame', function() {
        var content = $('.content:last');
        $('.content').stop().toggle(300,function(){
            $(this).remove();
        })
    });
    

    DEMO

    【讨论】:

    • 我明白你的意思,但现在在你的演示中,当鼠标悬停在 .content 上时,另一个 .content 一次又一次地切换
    • 但是当鼠标快速进入和离开 div 时,会附加很多 .content 而不是一个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多