2012-05-22 66 views
0

這確實是在問題中,但是,如何將索引的值重置爲零onclick?重置索引值爲零onclick

我有一個視頻列表,其中任何一個可以通過點擊播放。視頻完成後,它將播放下一個視頻。

它可以工作,但是如果你點擊一個又一個,而不是單獨播放下一個視頻,它會在剛剛播放的視頻之後播放兩個視頻。如果您第三次點擊,則會播放第三個。我知道這是因爲在ended上調用了該函數,並且每次點擊一個新視頻播放時,前一個視頻結束,並添加到其值。

如何讓它停止這樣做?

播放下一個視頻功能是:

$("#myVid").bind("ended", function() { 
      $("#bigPic").removeClass("move"); 
      $("#MyT").fadeIn(250); 
      function playArray(ele, array) { 
       index++; 
       if (index >= array.length) { 
        index = i; 
       } 
       ele.src = array[index]; 
       ele.load(); 
       ele.play(); 
      } 
      playArray(document.getElementById("myVid"), videos); 
     }); 

附:我試圖通過添加index-- onclick來降低價值,但只是圈了視頻。

+0

嘗試擴大變量'index'的範圍,並明確地將它的值設置爲'0'在點擊處理程序中... – xandercoded

回答

0

你正在將你的videolist保存在一個數組中,對吧?!所以有兩個動作:1.用戶點擊一個視頻,所以你的索引應該是你選擇的一個2.視頻是結束,如果存在,則跳轉到下一個列表。

var index = 0; 

$("YourVideoList").bind("click", function() { 
    index = "yourCurrentSelectedItem"  
}); 

$("#myVid").bind("ended", function() { 
     $("#bigPic").removeClass("move"); 
     $("#MyT").fadeIn(250); 
     function playArray(ele, array) { 
      index++; 
      if (index >= array.length) { 
       index = 0; //replaced "i" with 0, to play first video in list 
       //return; //break, if you want the list to stop at the end of the last video 
      } 
      ele.src = array[index]; 
      ele.load(); 
      ele.play(); 
     } 
     playArray(document.getElementById("myVid"), videos); 
    }); 

應該這樣做!

+0

我知道它應該這樣做,但它不。如果你點擊選擇一個視頻,然後觀看,它會變得瘋狂...... –

+0

它變得瘋狂是一個真實的精確描述;)也許你應該在設置新視頻之前清除視頻標籤的來源?也許這個鏈接有幫助(html5視頻播放列表與php)http://www.bionicworks.com/php/generate-a-playlist-for-html5-video – longilong

+0

對不起,但視頻開始播放非常奇怪。例如,當前 - >當前 - >第一 - >第三是一次發生的事情。我會看看 –