.one和回调

时间:2014-01-19 11:33:14

标签: javascript jquery jquery-callback

http://jsfiddle.net/EYQ3S/

$('#footer').one('hover', function() {
     $('#impressum_lang_container').stop().slideDown('slow', function(){
          $('body,html').animate({ scrollTop: $(document).height()}, 'slow');
          return false;
     });
}); 

我是javascript的新手,所以非常感谢你的帮助!非常感谢: - )

我正在努力将一个带有回调的.one下的两个函数统一起来。 我让他们单独工作,但现在我不知道如何继续。

我有一个页脚。有一种悬停效应,当鼠标越过页脚时,一个新的div会在下面展示更多内容。 现在我希望一旦div完全展开,这一面会自动滚动到最底部。这就是我尝试放入回调函数的原因。

此外,在我的第一个解决方案中,每次用户悬停页脚时都会执行向下滚动。我不想这样,所以我尝试使用.one-function。也不行。

2 个答案:

答案 0 :(得分:2)

没有名为hover的事件 - 它是一个用于注册mouseenter和mouseleave处理程序的实用函数,你需要使用mouseenter - 当鼠标进入元素时和mouseleave当鼠标离开元素

$('#footer').one('mouseenter', function () {
    $('#impressum_lang_container').stop().slideDown('slow', function () {
        $('body,html').animate({
            scrollTop: $(document).height()
        }, 'slow');
        return false;
    });
});

演示:Fiddle

答案 1 :(得分:0)

Arun的回答有效,但在我看来,应该使用mouseover事件而不是mouseenter,因为用户mouseover同时用户将光标移到#footer内将再次触发,同时使用mouseenter如果用户使用中间按钮向下滚动页面而不移动光标,则鼠标移动时不会触发任何事件,直到您离开元素并再次悬停在其上以触发鼠标中心。您可以自行决定何时发生这种情况,但我建议您同时进行测试。

所以,我只想改变

$('#footer').one('hover', function () {

$('#footer').one('mouseover', function () {