javascript - 当层重叠时,悬停对象在背景/前景元素上出现两次

标签 javascript jquery

请看这个例子: http://jsfiddle.net/AAd9b/1/

每次我将鼠标悬停在这个对象上时,重叠的对象都会打开两次,我该如何让它只淡出一次并停留在那里直到我将所有内容都用鼠标移开?因此,无论您是在背景还是前景物体上方都没有关系。

最佳答案

.hover()接受两个参数:handlerInhandlerOut .如果您只提供一个回调,它会在两个事件上调用,因此您需要查看事件类型以确定您是否 fadeInfadeOut

http://api.jquery.com/hover/

您可能正在寻找这个:

$('.someclass').hover(
    function() {
        //-- mouseenter
    },
    function() {
        //-- mouseleave
    }
);

你的元素在鼠标下闪烁的原因是因为它触发了 mouseleave $('.someclass') 上的事件(因为从技术上讲,鼠标确实离开了那个物体)。这是一个棘手的场景。当鼠标悬停在您的 <p> 上时,可能会涉及取消绑定(bind)和重新绑定(bind)事件...或一些花哨的 CSS 技巧。

或者试试这个:http://jsfiddle.net/UBdgz/

HTML:

<div class="wrapper">
    <div class="someclass">
        <a href="#">Hover Me</a>

    </div>
    <p>Only Once!</p>
</div>

JS:

var handleHover = function(evt) {
    switch (evt.type) {
        case 'mouseenter':
            $("p").fadeIn();
            break;
        case 'mouseleave':
            $("p").fadeOut();
            break;
    }
}
$(".wrapper").bind('mouseenter mouseleave', handleHover);

关于javascript - 当层重叠时,悬停对象在背景/前景元素上出现两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10940832/

相关文章:

javascript - js/jquery 对象快速显示

jquery - 如何使用 npm 从 svelte 使用 jquery 和数据表

javascript - 滚动动画会破坏页面上的链接

javascript - 谷歌地图 : change from map view to satellite view

php - 如何不让谷歌地图组地址在一起?

javascript - jQuery CSS 不透明度动画

javascript - ReferenceError:找不到变量:_e_0uWl - 浏览器 "breaks"

javascript - 我可以使用 Raphael.js 之类的东西在 HTML 窗口上方绘制矢量吗?

javascript - 如何使用 Dropzonejs 限制视频的持续时间?

javascript - Highcharts饼图如何减少由于绘图宽度造成的图表和图例之间的空间