我使用这个jquery代码循环遍历循环中的一些power bi幻灯片。现在我们也要求创建一个图像幻灯片。代码背后的逻辑是powerbi幻灯片将运行,然后将随机选择3个图像,并且这个过程将在连续循环中继续进行。我已经使用循环功能来旋转powerbi幻灯片以及图像,并使用math.random来选择多个图像。
这是代码:
// Continous Rotation
var divs = $('div[id^="content-"]').hide();
var i =0;
var pics = $('div[id^="images-"]').hide();
var j = 0;
(function cycle() {
// Loops the Powerbi Slides
divs.eq(i).show(0)
.delay(2000)
.hide(0, cycle);
i++;
if(i > divs.length){
// Loops the Images
var x = 1 + Math.floor(Math.random() * pics.length);
pics.eq(x).show(0)
.delay(3000)
.hide(0, cycle);
j++;
}
if (i > divs.length && j >= 3)
{
i = 0; j = 0;
}
})();
面临的问题:在旋转时显示powerbi幻灯片4次,与图像相同,但循环4次后,代码停止并显示空白页面。我通过chrome上的dev工具进行了检查,看到所有元素都被隐藏了,并且jquery代码在4次旋转后都没有运行。
但是,如果我只使用这部分代码(如下所示)它可以正常工作并循环几个小时。
var divs = $('div[id^="content-"]').hide();
var i =0;
(function cycle() {
// Loops the Powerbi Slides
divs.eq(i).show(0)
.delay(2000)
.hide(0, cycle);
i++;
})();
伪代码:
我希望我已经清楚了解我的疑问。我试图尽可能具有描述性。
对此的任何建议将不胜感激。
答案 0 :(得分:0)
尝试将循环功能置于最后,如果条件如下:
if (i > divs.length && j >= 3)
{
i = 0; j = 0;
cycle();
}
答案 1 :(得分:0)
尝试从隐藏回调中删除循环方法,并在最后一个if条件之后添加循环方法。