我有一个积极拒绝循环的jQuery动画。它将播放动画一次,然后退出。
这是:http://stackoverflow.quickmediasolutions.com/stackad/fancy.html
以下是相关的代码部分:
function DoAgain()
{
$('#block').stop().css('marginLeft','0px');
var width = ($('#block').width()) / 2;
var length = (1000 * num_ads) / document.getElementById('speed').value;
$('#block').animate({marginLeft: '-=' + width},length,'linear',
function() {
DoAgain();
});
}
我尝试使用Chrome JavaScript控制台调试应用程序,但根据它,一切正常。 (没有错误,DoAgain()
被称为罚款,等等。)
我真的被困在这里 - 赞赏正确的方向。
答案 0 :(得分:1)
我真的不知道为什么,但你的stop()
似乎已经打破了它。在这里,我为你修好了:
function DoAgain()
{
$('#block').css('marginLeft','0px');
var width = $('#block').width() / 2;
var length = (1000 * num_ads) / $('#speed').val();
$('#block').animate({marginLeft: '-=' + width}, length, 'linear', DoAgain);
}
你真的不需要stop()
,对吗?在再次调用该函数之前,动画已经完成。
答案 1 :(得分:0)
我想我会与大家分享解决方案:
显然只能在动画项目上调用stop()
,所以我插入以下内容:
$('table:animated').stop(true,false);
...这将仅在动画运行时停止动画。