点击后停止悬停?

时间:2012-04-05 17:35:12

标签: jquery html5

只是一个简单的问题,我有一个包含图像的图形和带有类叠加的跨度。在我的js中我有悬停覆盖不透明度的变化以显示图像背后的内容。

一旦用户点击图像,我需要不透明度状态保持为1,但问题是当鼠标离开.overlay区域时,不透明度将恢复为0.。

无论如何都要停止悬停中间流?

JS:

$(".overlay").hover(function () {
        $(this).stop().animate({'opacity':'1.0'}, 400);
    }, function () {
        $(this).stop().animate({'opacity':'0'}, 400);
    });

HTML

<figure>
    <div class="contents">
        <img src="images/photo_person.png" alt="Name">
        <div><span class="overlay"><h3>Name/h3> Occupation</span></div>

        <div class="bio">
        <div class="close"><a href="#">x</a></div>
        <div class="scroll-pane">
        <p>Content Text Here</p>
        </div>
        </div> 
</div>
</figure>

干杯

2 个答案:

答案 0 :(得分:4)

删除悬停处理程序onclick:

$(".overlay").click(function () {
    $(this).unbind("hover");
});

答案 1 :(得分:0)

这应该这样做:

cool_function($('.overlay'));

function cool_function(selector) {

    $(selector).hover(function() {
        $(this).stop().animate({
            'opacity': '1.0'
        }, 400);
    }, function() {
        $(this).stop().animate({
            'opacity': '0'
        }, 400);
    }).click(function() {
        $(this).unbind('mouseenter mouseleave click');
        $(this).click(function(){
            cool_function($(this));
        });
    });
}​

请参阅小提琴:http://jsfiddle.net/xEyCB/1/