【发布时间】:2011-12-31 04:00:41
【问题描述】:
我一直在编写一个简单的展示脚本,但遇到了一个我自己无法解决的问题...
首先,我贴一些代码:
obj.timeout = function() {
$.doTimeout('showcase', config['timeout'], function() {
//show preloader
$.doTimeout('showcase');
obj.addImage('next');
var angle = 0;
setInterval(function(){
angle+=3;
$(".showcase .preloader").rotate(angle);
},10);
$('.showcase .preloader').stop().fadeIn(config['speed']);
$('.showcase img.next').load(function() {
$('.showcase .preloader').stop().fadeOut(config['speed']);
obj.animateShowcase();
});
return true;
})
};
obj.init = function() {
//bind events (stop the timer on window blur and showcase hover)
$(window).bind('blur', function() {
$.doTimeout('showcase');
});
$('section.showcase, .showcase .preloader').bind('mouseover', function() {
$.doTimeout('showcase');
});
obj.timeout();
obj.loadData();
};
我正在使用一个名为 jQuery.doTimeout (http://benalman.com/projects/jquery-dotimeout-plugin) 的 jquery 插件,它应该使使用 timout 更容易(到目前为止确实如此)。
运行 $.doTimeout(id) 会停止我之前使用相同 id 启动的超时。
展示作品,在正确的延迟后动画等。我试图在有人将鼠标悬停在展示作品上后停止它,但它只适用于第一个“循环”......计时器停止,一切都很好。 不幸的是,在 timeout 函数至少运行一次之后,事件似乎解除了自己的绑定...... timeout 一直在循环,但是 mouseover 或 blur 事件停止工作......
我已经为此坐了几个小时,但看不到解决方案...也许我只需要另一双眼睛来看看它!
提前致谢!!
【问题讨论】:
标签: jquery events timeout unbind