调用我的数组中的下一个项目

时间:2011-11-17 17:17:57

标签: javascript arrays next

现在我有一系列视频。当我单击下一个并显示阵列加载中的下一个或上一个视频时,我该怎么做呢?

 <video id="video" controls autoplay width="1000">
  <source src="videos/test.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
  <source src="videos/test.ogv" />
 </video>

<a href="#" onClick="javascript:vidSwap(vidURL[i+]); return false;">next</a>



<script>
var vidURL=["videos/test.ogv","videos/test2.ogv","videos/test3.ogv","videos/test4.ogv","videos/test5.ogv"    ]; // literal array
function vidSwap(vidURL) {
var myVideo = document.getElementsByTagName('video')[0];
myVideo.src = vidURL;
myVideo.load();
 myVideo.play();
}

4 个答案:

答案 0 :(得分:2)

使用你的代码,它会是这样的。 你需要做的是让你在javascript变量上加载的视频。 然后,当您单击“上一个”或“下一个”时,您可以调用一个能够输入正确视频编号并调用它的函数。

<script>
var vidURL=["videos/test.ogv","videos/test2.ogv","videos/test3.ogv","videos"]
var video = 0;

function vidSwap() {
  var myVideo = document.getElementsByTagName('video')[video];
  myVideo.src = vidURL[video];
  myVideo.load();
  myVideo.play();
}


function prevVideo() {
  if(video == 0) {
    video = vidUrl.length;
  }
  else {
    video -= 1;
  }

  vidSwap();
}

function nextVideo() {
  if(video == length) {
    video = 0;
  }
  else {
    video += 1;
  }

  vidSwap();
}

</script>


 <video id="video" controls autoplay width="1000">
  <source src="videos/test.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
  <source src="videos/test.ogv" />
 </video>

<a href="#" onClick="javascript:prevVideo(); return false;">prev</a>
<a href="#" onClick="javascript:nextVideo(); return false;">next</a>

答案 1 :(得分:1)

引入变量,它将保存当前视频索引,然后在每次按next / prev时递增或递减

</script>
var i = 0;
<script>

javascript:vidSwap(vidURL[i++])

答案 2 :(得分:1)

看起来你在增量运算符中缺少另一个加号。

尝试更改

<a href="#" onClick="javascript:vidSwap(vidURL[i+]); return false;">next</a>

到此

<a href="#" onClick="javascript:vidSwap(vidURL[i++]); return false;">next</a>

答案 3 :(得分:1)

用环绕式包裹替代品;

<a href="#" onClick="return Vids.next();">next</a>
<a href="#" onClick="return Vids.prev();">prev</a>

...

var Vids = (function() {
    var _currentId = -1;
    var _urls = ["videos/test.ogv","videos/test2.ogv","videos/test3.ogv","videos/test4.ogv","videos/test5.ogv"    ]; // literal array
    return {
        next: function() {
            if (++_currentId >= _urls.length)
                _currentId = 0;
             return this.play(_currentId);
        },
        prev: function() {
            if (--_currentId < 0)
                _currentId = _urls.length - 1;
            return this.play(_currentId);
        },
        play: function(id) {
            var myVideo = document.getElementsByTagName('video')[0];
            myVideo.src = _urls[id];
            myVideo.load();
            myVideo.play();
            return false;
       }
    }
})();
相关问题