我是jQuery
中的菜鸟,我想了解当鼠标离开另一个元素时,如何知道我的鼠标悬停在一个元素中。
我写这段代码:
HTML
<ul>
<li class="conver">1</li>
<li class="conver">2</li>
<li class="conver">3</li>
<li class="conver">4</li>
<li class="conver">5</li>
</ul>
<div id="center">JSFIDDLE</div>
jquery的
$('ul').on('mouseenter','li', function () {
$('#center').fadeIn('fast');
}).on('mouseleave','li', function () {
//I want when mouse leave this element if mouse doesn't hover on ('#center')
//element so hide ('#center') element but if to be hover on it this div keep on
//and don't hide
$('#center').stop().fadeOut('fast');
});
现在告诉我,当鼠标离开li
元素 ('#center')元素或不 !!! <时,我怎么知道/ p>
答案 0 :(得分:0)
试试这个
timerId = null;
$('ul').on('mouseenter','li', function () {
$('#center').fadeIn('fast');
}).on('mouseleave','li', function () {
//I want when mouse leave this element if mouse doesn't hover on ('#center')
//element so hide ('#center') element but if to be hover on it this div keep on
//and don't hide
timerId = setTimeout(function(){
$('#center').stop().fadeOut('fast');
}, 500);
});
$('#center').on('mouseenter', function(){
if(timerId){
cleatTimeout(timerId);
timerId = null;
}
});
答案 1 :(得分:0)
我认为这会奏效。请记住,缓存jquery选定对象是一种很好的做法。例如,代码中多次使用$('#center')。
var center = $('#center');
var ul = $('ul');
var isMouseOnCenter = false;
ul.on("mouseenter", function () {
center.stop().fadeIn('fast');
}).on("mouseleave", function() {
isMouseOnCenter = false;
setTimeout(function() {
if(!isMouseOnCenter)
center.stop().fadeOut('fast');
}, 300);
});
center.on("mouseenter", function() {
isMouseOnCenter = true;
});
以下是http://jsfiddle.net/krasimir/cWn65/1/
上面代码的js小提琴还有一点小问题,因为您在 li 标记上附加了该事件。在 ul 上不是更好。