2012-12-06 36 views
2

此腳本用於切換兩個單獨的iframe中的內容。每個人都有自己的特定內容,這需要同步。我最初創建它只是在任何鍵盤觸發器上向前循環。它運行良好。然後我被要求在「後退」按鈕事件中向後循環。在jQuery中向前和向後循環兩個數組

它循環,但現在在後向循環中,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> 
+0

好的,得到了​​答案:數組保持不變,拉出自己的變量,使用開關函數。 '$(document.documentElement中).keyup(函數(e)中{ \t開關(e.keyCode){ \t殼體8://刪除 \t如果(I> 0){ \t \t我 - ; \t }否則{ \t \t I = locations.length - 1; \t} \t斷裂; \t默認: \t \t如果(I'locations.length - 1){ \t \t \t我++; \t} else { \t \t i = 0; \t} \t break; \t} \t \t $('#Results')。attr('src',locations [i]); $('#Description')。attr('src',details [i]);' – Dathan

回答

0

模負數是奇怪的事情......只是嘗試一下:

您的期望,例如,-1 % 3給你3(最後一個元素),而它實際上是2

我的建議是把if放在「回去」代碼的周圍以應對i == 0