3

我是 jQuery 的新手,实际上是任何类型的 AJAX/JavsScript(尽管对 PHP、xHTML 和 CSS 并不陌生)。无论如何,我正在尝试实现“类似工具提示”的效果,我可以将鼠标悬停在 div 上......新的 div 淡入它上面,然后当我退出 div 时,“工具提示”淡出。

所以这是我设法在这里和那里阅读奇怪的指南时拼凑起来的基本 jQuery:

$(function()
{
    $('#sn-not-logged-in').hover(function()
    {
        $('#sn-not-logged-in-hover').fadeIn('medium');
    });

    $('#sn-not-logged-in-hover').mouseout(function()
    {
        $('#sn-not-logged-in-hover').fadeOut('medium');
    });

});

问题是,如果我在悬停的 div 中放置“任何”html 标记,那么当您将其翻滚时,div 就会淡出。

有什么想法可以解决这个问题吗?

干杯。

4

1 回答 1

5

更新评论

只需将您的事件切换到mouseleave而不是mouseoutmousenter而不是hover将解决您的标记问题,如下所示:

$(function() {
  $('#sn-not-logged-in').mouseenter(function() {
    $('#sn-not-logged-in-hover').fadeIn('medium');
  });
  $('#sn-not-logged-in-hover').mouseleave(function() {
    $('#sn-not-logged-in-hover').fadeOut('medium');
  });
});

上一个答案

稍微改变.hover()一下,像这样:

$(function() {
  $('#sn-not-logged-in').hover(function() {
    $('#sn-not-logged-in-hover').fadeIn('medium');
  }, function() {
     $('#sn-not-logged-in-hover').fadeOut('medium');
  });
});

.hover()mouseenter在and上执行mouseleave(分别是您提供的第一个和第二个函数),因此它已经调用了fadeIn()已经重叠的部分。

mouseout但是,即使进入 child 也会触发,不会mouseenter触发.hover()。那么目前实际上是什么导致了您当前的问题...将鼠标移到<img>里面的标签上,不会有问题:)

于 2010-05-16T23:00:49.053 回答