前提・実現したいこと
javascriptで、モーダルウィンドウ上で再生されている動画を、動画以外の場所を押した時にも停止したい。
発生している問題・エラーメッセージ
javascriptの初心者です。いろいろ調べて見様見真似でやってみましたが、うまくいきません。解決法をご存知の方がいらっしゃいましたら、ご教授ください。よろしくお願いいたします。
Uncaught TypeError: v.pause is not a function
該当のソースコード
html
1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <link rel="stylesheet" href="css/back1.css"> 7 <link rel="stylesheet" href="css/modal.css"> 8 <title>Document</title> 9</head> 10<body> 11 <div class="participants" id="app"> 12 <div class="participant samplemodal-open"> 13 <div class="left"><img v-bind:src="participants.imgsrc" alt="" class="participant-image"></div> 14 <div class="right"> 15 <p class="participant-belonging">{{participants.belonging}}</p> 16 <p class="participant-name">{{participants.name}}</p> 17 <p class="message">{{participants.message}}</p> 18 </div> 19 </div> 20 <div id="sampleModal" class="samplemodal"> 21 <div class="samplemodal-wrap"> 22 <div class="samplemodal-bg"></div> 23 <div class="samplemodal-box"> 24 <div class="inner"> 25 <iframe width="640" height="360" v-bind:src="participants.moviesrc" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen class="movie"></iframe> 26 </div> 27 </div> 28 </div> 29 </div> 30 </div> 31 </div> 32 33 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script> 34 <script src="https://cdn.jsdelivr.net/npm/vue@2.6.12"></script> 35 <script type="text/javascript" src="js/modal.js"></script> 36 <script type="text/javascript" src="js/test.js"></script> 37</body> 38</html>
js
1//test.js 2var app = new Vue({ 3 el: '#app', 4 data:{ 5 participants: 6 { 7 belonging:'A高校', 8 name:'太郎', 9 message:'こんにちは。', 10 imgsrc:'test.jpg', 11 moviesrc:'https://www.youtube.com/embed/9MjAJSoaoSo' 12 }, 13 }, 14});
js
1//modal.js 2$(function() { 3 $('.samplemodal-open').click(function(){ 4 $('#sampleModal').fadeIn(); 5 $('html').addClass('modalset'); 6 }); 7 $('.samplemodal .samplemodal-bg,.samplemodal .samplemodal-close').click(function(){ 8 $('#sampleModal').fadeOut(); 9 $('html').removeClass('modalset'); 10 }); 11 }); 12 13 function Pause(){ 14 var v = document.getElementsByClassName('movie'); 15 v.pause(); 16 }; 17 18 $(document).on('click',function(e) { 19 if(!$(e.target).closest('.movie').length) { 20 // ターゲット要素の外側をクリックした時の操作 21 Pause(); 22 } else { 23 // ターゲット要素をクリックした時の操作 24 } 25 });
回答4件
あなたの回答
tips
プレビュー