在我的消息系统中,如果出现新消息,则调用一个函数,此函数在setInterval中通过jquery动画显示滚动。
现在我想从另一个函数停止它如何检查是否没有新消息。
我调用此函数来显示滚动:
function scroll(userID) {
$('.scroll'+userID).css('left','250px').show().html(''+ userID +' sent a new massage').animate({
left: '-='+(250+149)
}, 2000, function() {
scrollt(userID);
});
window.Ccolor = setInterval(function(){$('.popup'+userID).css('background-color','red');}, 2000);
}
setInterval对新邮件的另一个功能检查
function update() {
//code get userID have no new mail but scroll is running
//on his minimize popup
//want to stop scroll by uesrID
//Tried
clearInterval(Ccolor); //not work also can`t set userID
}
答案 0 :(得分:0)
如果新消息即将发生,则在update()函数中添加一个标志,在scroll()函数中使用setTimeout而不是setInterval,如果flag设置为true则调用scroll
function scroll(userID) {
$('.scroll'+userID).css('left','250px').show().html(''+ userID +' sent a new massage').animate({
left: '-='+(250+149)
}, 2000, function() {
scrollt(userID);
});
window.Ccolor = setTimeout(function(){$('.popup'+userID).css('background-color','red');}, 2000);
}
function update() {
var flag=false;
//set flag=true is new message come
if(flag===true)
scroll(userId);
else
setTimeout(update,2000);
}
我假设你有自己的逻辑来知道userId是否是新的,或者你也可以在你的html元素中设置data- *属性