【问题标题】:wrong code jquery错误的代码jquery
【发布时间】:2012-08-22 04:47:39
【问题描述】:

所以我在.mouseout.mouseover 上有一个动画 gif,3 秒后我想在那里有一个静止图像。我用的方法是把divbackground-image改一下,这样我就有了四张图片:

  1. 页面加载时(我在普通的 css 文件中这样做)
  2. 当鼠标悬停时(应该是动画,我正在做这个 jQuery)
  3. 当鼠标不在时(应该是动画并且我正在做这个 jQuery)
  4. mouseout 事件后 3 秒(应该是正常的)

我卡在 4 上,不知道如何编写代码,所以这里是我的 2 和 3:

    $("#ubBackground").hover(function(){
        $(this).stop().css("background-image","url(img/userBoxMouseOver.gif)");},
            function(){
      $('#ubBackground').css('background-image','url(img/userBoxMouseOut.gif)');
                        }
    );

我想我应该使用.delay(),但我不知道具体方法,感谢任何帮助。

【问题讨论】:

    标签: jquery delay mouseover mouseout


    【解决方案1】:
    var timer;
    
    $("#ubBackground").on({
        mouseenter: function(){
            clearTimeout(timer);
            $(this).css("background-image","url(img/userBoxMouseOver.gif)");
        },
        mouseleave: function() {
            var self=this;
            $(this).css('background-image','url(img/userBoxMouseOut.gif)');
            timer = setTimeout(function() {
                $(self).css('background-image','url(img/userBox3secLater.gif)');
            }, 3000);
        }
    });
    

    在鼠标离开时设置定时器,三秒后改变背景,并清除mouseenter中的timeout,以防鼠标在三秒内再次进入。

    【讨论】:

    • 再一次看起来很不错,但是当我把它放在我的 jQuery 文件中时它根本停止工作?
    • 您是否使用 jQuery 1.7 或更新版本,您还记得 document.ready 包装吗?
    • 最后我使用的是一些旧版本,现在当我下载最新版本时,它可以工作了,非常感谢大家
    • 如果对您有帮助,请记得接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 2015-12-11
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    相关资源
    最近更新 更多