我正在使用jQuery在加载时(在AJAX调用之后)“闪烁”一些文本,但是每当我调用clearInterval时,都会出现“未定义”错误。
这是我的代码片段:
OrderId="a12345";
var AllIDs = {};
AllIDs[OrderId] = setInterval(
function() {j$("#" + OrderId + "_MessageListSize").fadeIn(200).fadeOut(200)},
200
);
然后,在AJAX调用完成之后:
OrderId="a12345"; var myid = AllIDs[OrderId]; clearInterval(myid);
为什么clearInterval不能停止动画?它与我如何使用关联数组对象文字有关吗?
提前致谢!
最佳答案
JavaScript没有关联数组,它们是对象文字。 HTML ID不能以数字开头。您的问题是您安排事件的速度太快,无法备份事件。每200毫秒,您可以设置为安排两个任务,每个任务需要200毫秒才能完成(400毫秒)。
您可以调整时间间隔,但是如果AJAX尚未完成,则使用setTimeout()并安排动画回调中的下一个超时确实是一个更好的主意,否则将无济于事。无需clearInterval。
像这样
function scheduleBlink() {
AllIDs[OrderId] = setTimeout(
function() {
j$("#" + OrderId + "_MessageListSize").fadeIn(200).fadeOut(200, function () {
if (!ajaxDone) {
scheduleBlink();
}
else {
return;
}
}))
},
200
);
}
scheduleBlink()
关于javascript - ClearInterval不会停止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7813886/