2011-11-17 8 views
5

w tej chwili Mam szereg filmów. Jak mogę to zrobić, gdy kliknę przycisk Dalej i poprzedni następny lub poprzedni wideo w tablicy ładuje.Wywołanie następnego elementu w mojej tablicy

<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(); 
} 

+0

W atrybucie onclick przyjmuje się javascript, więc nie ma potrzeby wstępnego wywoływania funkcji za pomocą 'javascript:'. Polecam również rozpoczęcie pracy z jQuery, jeśli jeszcze tego nie zrobiłeś. – benekastah

Odpowiedz

2

Korzystanie kod yout, to będzie coś takiego. Co musisz zrobić, to wideo, które zostało załadowane na zmienną javascript. Następnie, po kliknięciu opcji prev lub next można wywołać funkcję, która wstawi poprawny numer wideo i wywoła go.

<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> 
+0

Kiedy zaimplementuję to, zwracając false, piszę next goetzs

+0

to nadal nie działa – goetzs

+0

może mieć pewne błędy, ponieważ zrobiłem to po głowie. Zobacz odpowiedź @brpyne i użyj moich tagt. Mówi, że jego kod jest poprawny. –

1

Przedstaw zmienną, która pozwoli zaoszczędzić bieżący indeks wideo, a następnie zwiększać ją lub zmniejszać za każdym razem, gdy naciśniesz przycisk Next/Prev

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

javascript:vidSwap(vidURL[i++]) 
+0

spowoduje to zerwanie po dotarciu do ostatniego elementu tablicy i naciśnięcie następnego :) –

1

Wygląda na to tracisz kolejny znak plus operatora inkrementacji .

Spróbuj zmienić

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

W tym

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

spowoduje to zerwanie po osiągnięciu ostatniego elementu tablicy. –

+0

To jest poprawne. Pomyślałem, że poradzisz sobie z tego rodzaju logiką po przejściu pierwszego problemu. Błędy składniowe, takie jak to, mogą być łatwo nadzorowane, uderzyłem w czoło co najmniej sto razy ponad takie rzeczy. – brpyne

1

opakowane alternatywę z Wrap-around;

<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; 
     } 
    } 
})(); 
+0

teraz to bardziej przypomina :) –

+0

czy możliwe jest umieszczenie wielu typów źródeł w tablicy – goetzs

+0

Czego szukasz według typów źródeł? –

Powiązane problemy