JQuery mouseout超时第2部分

时间:2009-09-18 16:07:49

标签: jquery mouse effects

这是this one后面的其他问题。

$('.overlay').bind("mouseenter",function(){
  $(this).fadeTo('slow', 0);
}).bind("mouseleave",function(){
  var $this = $(this);                               
  setTimeout(function() { 
    $this.fadeTo('slow', 1);
  }, 2000);
})

在我的.overlay div下面,我想要点击一些内容。因此,在这种情况下,.overlay淡化为0不透明度,但仍然覆盖了下面的内容。

如果我在这里使用fadeOut()fadeIn(),.overlay会完全消失,并且脚本认为我已将鼠标移出,即使我仍然悬停在.overlay上。< / p>

1 个答案:

答案 0 :(得分:0)

即使其不透明度为零,叠加仍然在吃鼠标事件。实际上,您的解决方案取决于此,因为您无法在叠加层上触发mouseentermouseleave事件,并且仍然可以点击下方的元素。

可能最好的做法是将叠加层和兄弟姐妹下面的元素放在容器div中。容器应该绑定mouseentermouseleave个动作,当叠加层完全淡出时,它也应该被隐藏。这样您就可以访问“点击”下方的元素。

关键是,为了能够点击叠加层下面的元素,它必须被隐藏或者不覆盖下面的元素,即使它是完全透明的。

顺便说一下,我认为这种行为是特定于浏览器的。例如,在IE中,您可能被允许在透明叠加层下方单击,但在FF中则不能。