使用Jquery创建的幻灯片在旋转4次后停止工作

时间:2018-01-31 03:02:14

标签: javascript jquery powerbi

我使用这个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++;

})();

伪代码:

  1. 显示PowerBi幻灯片的长度。
  2. 如果已执行所有powerbi幻灯片,请转到图像
  3. 随机选择3张图片并显示
  4. 如果选择了3张图像,则重置&返回显示powerbi幻灯片并再次执行步骤2-4
  5. 我希望我已经清楚了解我的疑问。我试图尽可能具有描述性。

    对此的任何建议将不胜感激。

2 个答案:

答案 0 :(得分:0)

尝试将循环功能置于最后,如果条件如下:

if (i > divs.length && j >= 3)
{
    i = 0; j = 0;
    cycle();
}

答案 1 :(得分:0)

尝试从隐藏回调中删除循环方法,并在最后一个if条件之后添加循环方法。