我使用jquery悬停方法调用函数,如下所示
$(<some_element>).hover(function(){animate("next",true);},function(){});
但是,仅当鼠标进入元素时才会调用animate函数。只要鼠标也在元素上,我希望它继续被调用。
有任何方法可以达到这个目的吗?
谢谢。
答案 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 );
}
);