当您悬停在div上时,我有一个脚本显示隐藏的文本.但是我想要延迟2秒钟,如果用户在2秒钟之前将鼠标移开,我不需要显示任何内容.
我该如何做?
我有什么:http://jsfiddle.net/ZhrJT/
–
HTML:
<body> <div>hover this</div> <p class="hidden">unhidden!!</p> </body>
JS:
$("body").on("mouseenter","div",function(){ $("p").removeClass("hidden"); }).on("mouseleave",function(){ $("p").addClass("hidden"); });
CSS:
div { background-color:red; height:100px; } p.hidden { display:none; } p { background-color:yellow; height:100px; }
解决方法
var timer; $("body").on("mouseenter",function(){ timer = setTimeout(function () { $("p").removeClass("hidden"); },2000); }).on("mouseleave",function(){ clearTimeout(timer); $("p").addClass("hidden"); });
有啊,这很简单.只需设置一个超时,当它运行时隐藏元素,如果用户鼠标悬停元素,则取消超时.