JQuery悬停问题

时间:2010-03-19 11:02:30

标签: javascript jquery

我使用jquery悬停方法调用函数,如下所示

$(<some_element>).hover(function(){animate("next",true);},function(){});

但是,仅当鼠标进入元素时才会调用animate函数。只要鼠标也在元素上,我希望它继续被调用。

有任何方法可以达到这个目的吗?

谢谢。

3 个答案:

答案 0 :(得分:4)

你可以在没有全局变量等的情况下做到这一点:

$(<some_element>).hover(function(){
  $(this).data("anim",setInterval(function() { animate("next",true); }, 500));  
},function(){
  clearInterval($(this).data("anim"));
});

此方法也适用于多个元素,因为间隔存储在本地。只需将500(半秒)更改为您想要动画的频率即可。

答案 1 :(得分:0)

您可以使用mouvemove,但如果鼠标在您的元素上保持不活动状态,它将无效。

来自动态方法的jQuery doc

  

.animate(属性,[持续时间],[缓和],[回调])

     

回调:动画完成后调用的函数。

所以我认为如果鼠标仍在你的元素上,你可以有一个回调,如果是,那么再次调用.animate(“next”,...)。

答案 2 :(得分:0)

试试这个:

var interval_id;
$(<some_element>).hover(
    function(){
        // start interval
        interval_id = setInterval( function() {
            // called every 100ms as long as the elem is hovered
            animate("next",true);
        }, 100 );
    },
    function(){
        // stop interval
        clearInterval( interval_id );
    }
);