中途停止悬停()

时间:2013-11-14 20:27:31

标签: jquery attributes hover mouseover

我为一个Dashboard(一个div)设置了动画,它隐藏起来直到hover()生效。 mouseOver出现div,mouseOut再次隐藏div,简单明了 - 效果很好。

但我想添加另一个功能。我可以以某种方式停止mouseOut函数,即click(),这样我就可以将鼠标移动到div之外而不会像它应该的那样消失吗?然后使用相同的click()函数恢复hover()函数的正常运行时间?

我的悬停代码(以防万一):

$('#dashboard').hover( function () {
                        $(this).stop().animate ({left: '0',backgroundColor: 'rgb(255,255,255)'},400,'easeInSine'); //animate M.over
                                },
                     function () {
                        $(this).stop().animate ({left: '-92px',backgroundColor: 'rgb(110,138,195)'},900,'easeOutBounce'); //animete M.out
                                }); // end hover

1 个答案:

答案 0 :(得分:0)

只要在进入或离开元素时单击并检查该标记,只需设置一个标记。

var disabled = false;

$('#dashboard').click(function () {
    // toggle the disabled
    disabled = !disabled;

}).hover(function () {
    if (!disabled) {
        $(this).stop().animate({
            left: '0',
            backgroundColor: 'rgb(255,255,255)'
        }, 400, 'easeInSine'); //animate M.over
    }
},
function () {
    if (!disabled) {
        $(this).stop().animate({
            left: '-92px',
            backgroundColor: 'rgb(110,138,195)'
        }, 900, 'easeOutBounce'); //animete M.out
    }
});

http://jsfiddle.net/R2PeL/1/