質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1748閲覧

YoutubeAPIを使ってモーダルウィンドウを開いた時に再生について:停止「pauseVideo()」が動作しない

mainichi_sn

総合スコア15

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/09/16 05:08

編集2020/09/16 05:09

https://webkcampus.com/201912/1716/

▲ こちらのページある「YoutubeAPIを使ってモーダルウィンドウを開いた時に再生」を自サイトに実装したのですが、
モーダルウインドウを閉じた時の「動画停止」がChrome以外のブラウザ(firefoxとIEで確認)で動作しません。

Jqueryコードの

Jquery

1$lay.unbind().click(function () { 2 player.pauseVideo(); 3 $content.add($lay).fadeOut("fast", function () { 4 $lay.remove(); 5 }); 6});

Jquery

1player.pauseVideo();

の部分に問題があるようで、そこで処理がストップして $lay.remove(); も動作しない状態です。
色々試したのですが解決できず、、
もし原因がわかる方いらっしゃいましたら教えてくださいませ m(_ _)m

参考ページのデモ:
https://webkcampus.com/sample/youtube-autoplay/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sizka_rn

2020/09/16 05:27

「~の部分に問題があるようで、~」の部分を詳しく知りたいです。 デベロッパーツールのコンソールに何かエラーが出ているのでしょうか?
mainichi_sn

2020/09/16 05:42

player.pauseVideo(); を削除すると $lay.remove(); が動作したので player.pauseVideo(); に問題があると思った次第です。素人考えですみません。 デベロッパーツールのコンソールは確認しておりませんm(_ _)m
guest

回答1

0

ベストアンサー

イベント発火時にコンソールでplayerの中を確認するとundefinedになっています。
これはオブジェクトの生成が完了する前に実行しようとしているためです。

解決策
JSが読み込まれたらオブジェクトの生成を開始させます。
つまり、39行目で呼び出している関数を外に出すだけで解決します。
関数定義後の29行目後に移動させてみたらどうでしょうか?

Javascript

1youtubeAPIInit() // 39行目 -> 30行目に移動

投稿2020/09/16 08:32

Create_NAYU

総合スコア101

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mainichi_sn

2020/09/16 11:07

ご回答ありがとうございます。 29行目後に移動させてみましたのですが ■サムネクリック時 Uncaught TypeError: player.playVideo is not a function ■$layクリック時 Uncaught TypeError: player.pauseVideo is not a function という感じになってしまいました。
Create_NAYU

2020/09/16 15:10 編集

私の環境がたまたま良かったのかもしれません。 すみません。 別の原因として下記のurlの回答にある通り"iframe"が初めから非表示になっているとエラーになるそうです。 https://stackoverrun.com/ja/q/12007146 代案として書いてみましたがいかがでしょうか? jQuery, playVideo, pauseVideoを使わず、最低限の要素にしてみました。ご参考ください。 https://codepen.io/RubikiscubeSt/pen/JjXBzqx
mainichi_sn

2020/09/16 16:20

代案のコードまでありがとうございますm(_ _)m 恐縮です、なんとお礼を言ったら良いか..  書いていただいたコードに差し替えて修正したところ見事希望どおりの実装ができました! 本当にありがとうございますm(_ _)m
mainichi_sn

2020/09/16 16:28

=> は IEで未対応とのことだったので function に書き換えてみました! 本当にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問