jQuery如何杀死一个创建的Div?

时间:2011-06-16 14:00:30

标签: javascript jquery

我目前所拥有的是一个产品列表(div),当盘旋时,会创建一个重复的div并将其定位在原始div上(偏移一点并使用css重新设置)。这个新div更大,并提供了更多信息,显示在列表视图中。

当我将鼠标悬停在新div上时,它是.remove()'但是我发现它不会立即执行此操作,如果我将鼠标移动得足够快,则会触发悬停事件,但是mouseleave事件是不(因为新的div只是留在屏幕上)。

我目前检测何时删除新div:

jQuery('.newDiv').mouseleave(function(){
  jQuery(this).remove();
});

如何让我的新div检查鼠标是否打开/关闭以便我可以正确杀死它?

2 个答案:

答案 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);
});