2017-01-28 4 views
1

私は2つの別々のボタンで2本のビデオを開始し、停止しようとしています。私は単純にコードをコピーして変数の名前を変更しましたが、コードの一部は動作しません。 'TypeError:video2.pauseはHTMLButtonElement.cの関数ではありません。'というエラーが表示されます。ビデオとボタンの両方がモーダルに置かれます。特に同じコードが動作している場合、この奇妙なエラーが発生するのはなぜですか?Javascriptの「xは関数ではありません」

Javascriptを:

var video = document.getElementById("video.mp4"); 
    var playButton = document.getElementById("play-pause"); 

    var video2 = document.getElementById("video2.mp4"); 
    var play = document.getElementById("play-pause2"); 

    playButton.addEventListener("click", function a() { 
     if (video.paused == true) { 
      video.play(); 
      playButton.innerHTML = "Pause"; 
     } else { 
      video.pause(); 
      playButton.innerHTML = "Play"; 
     } 
     }); 

    play.addEventListener("click", function c() { 
     if (video2.paused == true) { 
      video2.play(); 
      play.innerHTML = "Pause"; 
     } else { 
      video2.pause(); 
      play.innerHTML = "Play"; 
     } 
     }); 

HTML:

<video width="900px" height="600px" id="Digital_Poster.mp4" /> 
     <source src="assets/video.mp4" type="video/mp4" id="video.mp4"/> 
     Sorry, this browser does not support the 'video' tag. 
    </video> 
    <div id="video-controls"> 
     <button type="button" id="play-pause">Play</button> 
    </div> 

    <video width="900px" height="600px"> 
     <source src="assets/video2.mp4" type="video/mp4" id="video2.mp4"/> 
     Sorry, this browser does not support the 'video' tag. 
    </video> 
    <div id="video-controls"> 
     <button type="button" id="play-pause2">Play</button> 
    </div> 
+0

あなたはどこのビデオ要素ですか?私は – Frxstrem

+0

は、さてあなたは、 '' ID「video2.mp4」で任意の要素を示さないので、それがあります...あなたのコードでそれらを見ていない...あなたの二つのボタンがplay- 'のIDを持っている –

+0

もJavaScriptでpause'と 'PLAY-pause2'を、あなたのHTMLに、彼らは申し訳ありませんが、私はそれが関連するとは思わなかったとして、それを切り取って、コミュニティ' play'と '遊ぶ-pause' ... – Frxstrem

答えて

1

あなたは<video>要素に.pauseを呼び出す必要がありますが、id<source>ものに設定されています。 <video>タグにそれを移動すると、それを動作させる必要があります。

<video width="900px" height="600px" id="video.mp4"> 
     <source src="assets/video.mp4" type="video/mp4" /> 
     Sorry, this browser does not support the 'video' tag. 
    </video> 
    <div id="video-controls"> 
     <button type="button" id="play-pause">Play</button> 
    </div> 

    <video width="900px" height="600px" id="video2.mp4"> 
     <source src="assets/video2.mp4" type="video/mp4" /> 
     Sorry, this browser does not support the 'video' tag. 
    </video> 
    <div id="video-controls"> 
     <button type="button" id="play-pause2">Play</button> 
    </div> 

ちなみに、私は、最初の行に>/>を修正しました。また、IDがvideo-controlsに設定された2つの要素を宣言することは不正です。HTML classes(指摘に感謝@ zer00ne)を使用することを検討してください。

+0

Idsはあなたが他人を批判する前に、あなた自身の仕事に注意を払う必要がユニークであると確認するために、それを見ていた認めます。 – zer00ne

+0

どういう意味ですか? 2つのIDは異なりますが、このコードは[(jsfiddle)](https://jsfiddle.net/1cvxyeuv) –

+0

@ zer00neああ!私は、あなたが繰り返されている「ビデオコントロール」IDについて話していたことを理解していました...それは問題の原因ではありませんでしたが、私もOPを修正するためのメモを追加しました。ありがとう! –

関連する問題