4

ボタンをクリックしてから3秒後に再生したいvimeoビデオがあります。クリックでビデオを再生できますが、適切な場所で setTimeout を取得できないようです...何か提案はありますか?

var iframe1 = document.getElementById("prelearn-1");
var player1 = $f(iframe1);

var prelearnBtn = document.getElementById("prelearn-1-btn");
prelearnBtn.addEventListener("click", setTimeout(function(){player1.api("play")}, 3000));

vimeo froogaloop API を使用しています。

4

4 に答える 4

14

関数内にラップするだけです-

prelearnBtn.addEventListener("click", function(){
    setTimeout(function(){
        player1.api("play");
    }, 3000);
});
于 2015-04-20T18:12:41.397 に答える
2

関数はsetTimeoutコールバック関数を受け取ります。コードを匿名関数でラップするだけで、機能するはずです。また、iFrame のコンテンツにアクセスしようとすると、クロスドメインの問題が発生する可能性があります。

var iframe1 = document.getElementById("prelearn-1");
var player1 = $f(iframe1);

var prelearnBtn = document.getElementById("prelearn-1-btn");
prelearnBtn.addEventListener("click", function(){setTimeout(function(){player1.api("play")}, 3000)});
于 2015-04-20T18:13:06.623 に答える
0

AddEventlistener は、匿名関数を 2 番目の引数として受け取ります。setTimeoutしたがって、匿名関数の内部をラップする必要があります。クリック イベントが発生するたびに、setTimeout コードがトリガーされ、ビデオが再生されます。

prelearnBtn.addEventListener("click", function () {
    setTimeout(function () {
        player1.api("play")
    }, 3000)
}, false);
于 2015-04-20T18:13:17.670 に答える