我的'setInterval'函数有问题,我想在我徘徊我的div时启动该函数,但是setInterval只是在我第一次使用div =>时工作如果我留在div上,它不会继续改变图片,而是停止'setinterval'。
这是mouseenter的问题吗?我试过'悬停'等等,但似乎没有什么可以成功的。
有没有人有解决方案?
非常感谢您的帮助,这是我的代码:
img.bind('mouseenter', function(){
setInterval(next($(this)),1000);
});
function next(elem){
var img_li = elem.find('li');
count++;
if (count>2) count=0;
img_li.eq(count).fadeIn('fast', function(){
img_li.eq(current).css({'display':'none'});
current = count;
});
}
答案 0 :(得分:2)
这是因为你将next($(this))的返回值赋给setInterval而不是函数本身。
试试这个:
img.bind('mouseenter', function(){
var that = $(this); //Use that-this model to avoid any scope issues with this reference
setInterval(function(){
next(that);
},1000);
});
答案 1 :(得分:2)
您可以考虑使用jQuery Timers插件,这样可以更轻松地使用此类功能。特别是,请看以下内容:
everyTime(interval:Integer | String,[label = interval:String],fn:Function,[times = 0:Integer])
everyTime将定义的函数(fn)添加为定时事件,以给定的时间间隔(间隔)运行给定的次数(次数)。如果times设置为0,则调用方法的次数是无限的。还为给定的定时事件设置标签,提供给提供的字符串(标签)或提供的间隔的字符串表示。此外,可以使用诸如“3s”之类的字符串定义间隔3秒钟。