在jQuery中循环前进和后退两个数组

时间:2012-12-06 16:47:28

标签: jquery arrays iframe cycle

此脚本用于在两个单独的iframe中切换内容。每个都有自己的特定内容,需要同步。我最初创建它只是在任何键盘触发器上循环前进。它工作正常。然后我被要求在“后退”按钮事件上向后循环。

它循环,但现在在后向循环中,iframe中的内容不同步,并且循环不是迭代的,但看似随机,取决于你在前进周期中的位置,在iFrame之间跳转。

代码在前进周期中工作,我不想打破它。

    <script>
  $(document).ready(function(){
    var locations = ["Assets/Assets0.html", "Assets/Assets1.html", "Assets/Assets2.html", "Assets/Assets3.html"];
    var details = ["Details1/Details0.html", "Details1/Details1.html", "Details1/Details2.html", "Details1/Details3.html"];
    var len = locations.length;
    var len2 = details.length;
    var iframe = $('#Results');
    var iframe2 = $('#Description');
    var i = 0;
    $(document.documentElement).keyup(function (event) {
        // handle delete key
        if (event.keyCode == 8) {
            $(iframe).attr('src', locations[--i % len]);
            $(iframe2).attr('src', details[-i % len2]);

        // all other keys
        } else  {
            $(iframe).attr('src', locations[++i % len]);
            $(iframe2).attr('src', details[+i % len2]);
          }
        });

  });
</script>

1 个答案:

答案 0 :(得分:0)

带有负数的模数很奇怪......只需尝试一下:

例如,您希望-1 % 3在实际为2时为您提供3(最后一个元素)。

我的建议是在“返回”代码周围添加if以应对i == 0