我有一个显示模式框的jQuery函数:
function ShowAnonce(){
...
jQuery(".ShowAnonce").show();
jQuery(".ShowAnonce").animate({opacity: 1},300).delay(1800).animate({opacity: 0},300);
}
我想做的是以不同的随机间隔显示此框10次。我使用了
for
循环和setTimeout
像这样:for(i=0;i<10;i++){
setTimeout(ShowAnonce(),Math.random()*100);
}
但它会立即显示该框10次。我该如何解决?
另外,为什么我不能在
ShowAnonce
函数末尾执行以下操作? jQuery(".ShowAnonce").hide();
如果执行此操作,则不会显示框,因为样式
display:none
一直被分配。 最佳答案
Math.random()可以返回小数形式的值,如0.123。 setTimeout()无法接受的。试试Math.ceil(Math.random()),这将为您提供一个整数,但可能会一次又一次给出相同的值。
我会尝试(Math.ceil(Math.random())* 10)。
关于javascript - 循环jQuery中函数之间的延迟,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30321355/