Šim*_*das 34
$("#div1").mouseenter(function() {
var $div2 = $("#div2");
if ($div2.is(":visible")) { return; }
$div2.show();
setTimeout(function() {
$div2.hide();
}, 10000);
});
Run Code Online (Sandbox Code Playgroud)
另一种方式:
$("#div1").mouseenter(function() {
var $div2 = $("#div2");
if ($div2.data("active")) { return; }
$div2.show().data("active", true);
setTimeout(function() {
$div2.hide().data("active", false);
}, 10000);
});
Run Code Online (Sandbox Code Playgroud)
Fat*_*orm 19
使用jQuery的延迟(n); 方法 http://api.jquery.com/delay/
$(function() {
$("#div1 img").hover(function(){
$("#div2").show().delay( 10000 ).hide(0);
});
});
Run Code Online (Sandbox Code Playgroud)
use*_*716 13
接受的答案是这里唯一的好处.
我要留下答案了,因为大多数其他人因各种原因而失败.
如果要使用.delay()
,延迟的项目需要成为队列的一部分.该.hide()
方法是没有的.但如果你给出.hide()
持续时间,那就是.
所以你可以这样做:
var $div2 = $('#div2');
$('#div1').mouseenter(function() {
$div2.show().delay( 10000 ).hide( 0 );
});
Run Code Online (Sandbox Code Playgroud)
的0
持续时间使得.hide()
所述队列的一部分.你不想使用,.hover()
因为它会为mouseenter
一次和一次点火mouseleave
.这不是想要的.
一些答案使用setTimeout()
失败,因为如果有多个mouseenter
事件,则进行多次setTimeout()
调用.接受的答案绕过了这一点.
作为鼠标悬停功能的一部分:
setTimeout(function(d){
item.hide();
}, 10000);
Run Code Online (Sandbox Code Playgroud)
这假设var item
是您要隐藏的div的jquery对象.参数10000
是以毫秒为单位的延迟.10s*1000ms/1s = 10000ms