我有一个显示模式框的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/

10-12 14:37