一系列文件预览onclick

时间:2017-09-05 07:01:15

标签: javascript preview

Files是一个在这里使用的数组,并传递了三个项目。下一次button之后,我只从array获得第一项。如何onclick下一个button逐个获取下一个项目?{/ p>

请在下面找到js代码:

function plusSlides(n) {

  var i;
  var currentIndex= 0;

  var files = ["","",""];
   if(currentIndex<files.length)
{
    var omyFrame = document.getElementById("myFrame");
omyFrame.style.display="block";
omyFrame.src = files[currentIndex];
currentIndex++;
   }   
n++;
}

3 个答案:

答案 0 :(得分:0)

您每次只获取数组的第一项的原因是因为您在currentIndex函数中声明了filesplusSlides。每次调用时,currentIndex都会重置为0

尝试将这些声明放在plusSlides函数之外:

var files = ['', '', ''];
var currentIndex = 0;

function plusSlides() {
    ...
}

答案 1 :(得分:0)

每次调用函数时,都会重置currentIndex变量,因为它属于函数范围。您可以将currentIndex变量设为全局变量,也可以在函数中保留当前索引的信息:

&#13;
&#13;
function plusSlides(n) {
    this.currentIndex = this.currentIndex || 0;

    var files = ["", "", ""];
    if(this.currentIndex < files.length)
    {
        // Reset your iframe source here
        this.currentIndex++;
    }
    console.log(this.currentIndex);
}
&#13;
&#13;
&#13;

答案 2 :(得分:0)

价值&#39; n&#39;你传递给函数是不是在函数内部的任何地方使用。变量i和currentIndex也会被重置,因此在某种程度上它们在这里没用。您可以根据传递的参数更新currentIndex的值,然后相应地进行编码。 试试以下代码,

var currentIndex= 0;
var files = ["","",""];

function plusSlides(n) {
       if(n == 1)
          currentIndex++;
       else
          currentIndex--;
      currentIndex = (currentIndex <= -1)? 0 : currentIndex;          
      if(currentIndex<files.length)
      {
          var omyFrame = document.getElementById("myFrame");
          omyFrame.style.display="block";
          omyFrame.src = files[currentIndex];
      }   
    }