简单的解决方法是窝在一个共同的容器中的元素,并附加鼠标事件到容器:
<div id="container">
<img id="login-trigger" src="image.png" />
<div id="login-box">
<!-- login stuff -->
</div>
</div>
,只是使用CSS:
#container #login-box {display:none;}
#container:hover #login-box {display:block;}
或JavaScript
$('#container').on('mouseenter mouseleave', function(e) {
$('#login-box')[e.type=='mouseenter'?'slideDown':'slideUp']('slow');
});
如果这是不可能的,你必须在触发器和盒子上使用超时和事件处理程序,这是一个相当复杂的事情。
$('#login-trigger, #login-box').on({
mouseenter: function(e) {
if (e.target.id == 'login-trigger') $('#login-box').slideDown('slow');
clearTimeout($('#login-box').data('timer'));
},
mouseleave: function() {
$('#login-box').data('timer',
setTimeout(function() {
$('#login-box').slideUp('slow')
}, 300)
);
}
});
FIDDLE
$( “#登录触发器”, “#登录框”)悬停(函数()---这样 – OllyBarca
没有,在你的HTML,像这样:?