我无法让这个工作。在鼠标悬停时,显示div。在mouseleave上,如果仍然显示元素继续显示该元素,否则淡出元素。
$('#list_cont').on('mouseenter', '.show_map', function() {
$(this).next('.map_cont').fadeIn(800);
}).on('mouseleave', '.show_map', function() {
var mapcont = $(this).next('.map_cont');
if (mapcont.is(':hover')) {
mapcont.show();
} else {
$(this).next('.map_cont').delay(600).fadeOut(800);
}
});
问题是,元素永远不会离开。示例here。将鼠标悬停在地图上。
答案 0 :(得分:1)
尝试更像这样的东西。在图标和地图上使用事件处理程序,仅在鼠标离开两个元素时淡出:
$('#list_cont').on('mouseenter', '.show_map', function() {
$(this).next('.map_cont').stop().fadeIn(800);
}).on('mouseleave', '.show_map', function() {
if (!$(this).next('.map_cont').is(':hover')) {
$(this).next('.map_cont').delay(600).stop().fadeOut(800);
}
});
$('#list_cont').on('mouseenter', '.show_map', function() {
$(this).stop().show();
}).on('mouseleave', '.map_cont', function() {
$(this).delay(600).stop().fadeOut(800);
});