我目前所拥有的是一个产品列表(div),当盘旋时,会创建一个重复的div并将其定位在原始div上(偏移一点并使用css重新设置)。这个新div更大,并提供了更多信息,显示在列表视图中。
当我将鼠标悬停在新div上时,它是.remove()'但是我发现它不会立即执行此操作,如果我将鼠标移动得足够快,则会触发悬停事件,但是mouseleave事件是不(因为新的div只是留在屏幕上)。
我目前检测何时删除新div:
jQuery('.newDiv').mouseleave(function(){
jQuery(this).remove();
});
如何让我的新div检查鼠标是否打开/关闭以便我可以正确杀死它?
答案 0 :(得分:4)
您是否考虑过使用CSS修补它?
.newDiv{
display:none;
}
.newDiv:hover{
display:block;
}
这样,unhover无论如何都会隐藏div。可能是渲染代理比JS引擎更快,从而为您节省了瞬间故障。
答案 1 :(得分:0)
也许是这样的:
jQuery('.newDiv').mouseleave(function() {
var self = jQuery(this);
setTimeout(function() {
self.remove();
}, 250);
});