代码之家  ›  专栏  ›  技术社区  ›  Gregg

jQuery live()悬停,带有show/hide div的奇怪行为

  •  0
  • Gregg  · 技术社区  · 14 年前

    我在这里创建了一个问题示例:

    http://jsfiddle.net/jXLSW/

    请注意,当您将鼠标悬停在图像上时,一个div将显示在图像的顶部。当你离开图像时,它就会消失。问题是当你把鼠标移到上面的div上时。它进入这个显示/隐藏循环,因为鼠标正在进入/离开。

    显示在顶部的div将包含充当工具栏的图标。当我将鼠标悬停在工具栏上时,如何使其保持可见?更重要的是,我如何才能让悬停事件停止骑自行车?

    更新:有趣的是下面的代码可以按需要工作。问题是,livequery似乎经常出现问题,但实际上并没有出现。因此,没有div出现,这也是一个主要问题。

    $('.has-menu').livequery(function() {
      $(this).hover(function() {$(this).find('div.img-menu').slideToggle();}, function() {$(this).find('div.img-menu').slideToggle();});
    });
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   Gregg    14 年前

    我把密码改成了:

    $('.has-menu').live('hover', function(e) {
        if (e.type == 'mouseover') {
            $(this).find('div.img-menu').slideToggle();
        }else{
            $(this).find('div.img-menu').slideToggle();  
        }
    });
    

    现在一切都好了。