Jquery-如何修复此图像翻转?

Jquery-如何修复此图像翻转?,jquery,hover,rollover,Jquery,Hover,Rollover,大家好,我有一个小小的Jquery脚本: 我工作得很好,但我希望能够将鼠标悬停在图像中的文本上,每次我尝试时,它都会保持“反弹” 非常感谢您的帮助, 谢谢 基思问得好 问题似乎是,当鼠标位于段落上方时,鼠标不再位于图像上方。所以这一段是隐藏的。当段落被隐藏时,鼠标再次位于图像上方,因此段落再次显示。等等 一个好的解决方案是使用mouseenter和mouseleave事件,而不是mouseover和mouseout: $(document).ready(function(){ $('#i

大家好,我有一个小小的Jquery脚本:

我工作得很好,但我希望能够将鼠标悬停在图像中的文本上,每次我尝试时,它都会保持“反弹”

非常感谢您的帮助, 谢谢 基思问得好

问题似乎是,当鼠标位于段落上方时,鼠标不再位于图像上方。所以这一段是隐藏的。当段落被隐藏时,鼠标再次位于图像上方,因此段落再次显示。等等

一个好的解决方案是使用mouseenter和mouseleave事件,而不是mouseover和mouseout:

$(document).ready(function(){
    $('#image p').hide();

    $('#image').bind("mouseenter", (function(){
        $('#image p').show(200)
     }));

    $('#image').bind("mouseleave", (function(){
        $('#image p').hide(200)
     }));

});
mouseenter/mouseleave事件与mouseover/mouseout事件之间的主要区别在于前者不冒泡

在本例中,div#image的子段落仍然接收mouseenter/mouseleave事件(即使您没有侦听它们),但这些事件不会出现在其父元素上。请参阅关于它的详细讨论


您还必须将事件不再分配给img标记,而是分配给包含的div。这应该不是问题。

这个想法很好,但提供的代码不起作用。最后一个事件处理程序必须如下指定:$('#image p').mouseover(function(){$(this).show()}你是对的。这是一个剪切粘贴错误。最后一个事件无论如何都不是必需的。@Marko Dumic-这很有意义,如果有两个段落,它们都会显示出来。$(this).show()更好,谢谢
$(document).ready(function(){
    $('#image p').hide();

    $('#image').bind("mouseenter", (function(){
        $('#image p').show(200)
     }));

    $('#image').bind("mouseleave", (function(){
        $('#image p').hide(200)
     }));

});