我希望我的jQuery动画只能工作一次

时间:2013-11-20 14:47:32

标签: javascript jquery

我希望这只能工作一次。目前,我的滚动顶部始终有效,因此无法向下滚动页面。

$(function() {
    $(".showhover").hover(
    function() {
        $('div.mouseover').show(),
        $("html, body").animate({scrollTop: $('div.mouseover').innerHeight() });
    });
}); 

2 个答案:

答案 0 :(得分:3)

您可以使用one(),但hover()是jQuery打包mouseenter和mouseleave中的自定义函数,而one('hover')会附加到hover事件,即不推荐。

使用mouseenter / mouseleave时,您必须自行恢复功能:

$(function() {
    $(".showhover").one({
        mouseenter: function() {
            $('div.mouseover').show(),
            $("html, body").animate({scrollTop: $('div.mouseover').innerHeight() });
        },
        mouseleave: function() {
            $('div.mouseover').hide(),
        }
    });
}); 

答案 1 :(得分:0)

尝试one('mouseenter mouseleave',hover是mouseenter和mouseleave组合的伪事件。

$(".showhover").one('mouseenter mouseleave', function(e) {
        $('div.mouseover').toggle();
        if(e.type === 'mouseenter')
            $("html, body").animate({scrollTop: $('div.mouseover').innerHeight() });
});