如果在5秒后将鼠标移出div而不是鼠标悬停,则更改div颜色,然后更改div的颜色

时间:2013-10-09 07:44:02

标签: javascript jquery css

我想改变div的颜色 当鼠标离开这个div然后不在这个div上返回5秒然后改变div背景颜色
这里有一些代码可以从div中获取最后一次鼠标输出时间

<html>
<head>
  <meta charset="utf-8" />
  <title>jQuery UI Effects - Animate demo</title>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <style>
    #effect { width: 240px; padding: 0.4em; position: relative; background: yellow; }
  </style>
  <script>
  var sec = 0;
        function pad ( val ) { return val > 9 ? val : "0" + val; }
        setInterval( function(){
            $("#effect").attr("name",pad(++sec%60));
        }, 1000);
        $(document).ready(function(){
        $("#effect").mouseout(function (){
            var time = $(this).attr("name");
            alert("at Mouse out:- "+time+" Second ");
        });
        });
  </script>
</head>
<body>
  <div id="effect" class="ui-widget-content ui-corner-all">ON Ready Status...
</div>
</body>
</html>
<script>
</script>

如何在5秒后更改div颜色。鼠标出来了?

3 个答案:

答案 0 :(得分:2)

    $("#test").on('mouseenter', function() {
        $("#test").css('background-color', 'red');
    });


    $("#test").on('mouseleave', function() {
            var timer=self.setInterval(function() {   
           $("#test").css('background-color', 'blue');
            window.clearInterval(timer);},5000);
    });
});

小提琴:http://jsfiddle.net/jsAgX/

答案 1 :(得分:1)

使用以下代码在5秒后运行代码

setTimeout(function() {
//your code
},5000);

答案 2 :(得分:1)

尝试

#effect.mouseout {
    background: red;
}

$(document).ready(function () {
    $("#effect").hover(function () {
        var $this = $(this)
        clearTimeout($this.data('mouseouttimer'));
        $this.removeClass('mouseout');
    }, function () {
        var $this = $(this)
        var timer = setTimeout(function () {
            $this.addClass('mouseout');
        }, 2000);
        $this.data('mouseouttimer', timer);
    }).trigger('mouseleave');
});

演示:Fiddle