setTimeout 与 addEventListener 的问题
Trouble with setTimeout with addEventListener
我有一个 vimeo 视频,我想在单击按钮后播放 3 秒。我可以让视频在点击时播放,但我似乎无法在正确的位置设置 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。
只需将它包装在一个函数中 -
prelearnBtn.addEventListener("click", function(){
setTimeout(function(){
player1.api("play");
}, 3000);
});
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)});
AddEventlistener 将匿名函数作为第二个参数。所以你需要将 setTimeout
包裹在匿名函数中。每当点击事件发生时,setTimeout 代码将触发并播放视频。
prelearnBtn.addEventListener("click", function () {
setTimeout(function () {
player1.api("play")
}, 3000)
}, false);
ES2015 更短的语法 + 利用 setTimeout
的 第三个参数 将使我们的代码更短更好,同时保持它可读:
document.querySelector('button').addEventListener("click",() =>
setTimeout(console.log, 1000, "play")
)
<button>Play</button>
为了打印参数,上面的示例将 OP 的 player1.api
方法替换为 console.log
,这说明代码有效。
我有一个 vimeo 视频,我想在单击按钮后播放 3 秒。我可以让视频在点击时播放,但我似乎无法在正确的位置设置 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。
只需将它包装在一个函数中 -
prelearnBtn.addEventListener("click", function(){
setTimeout(function(){
player1.api("play");
}, 3000);
});
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)});
AddEventlistener 将匿名函数作为第二个参数。所以你需要将 setTimeout
包裹在匿名函数中。每当点击事件发生时,setTimeout 代码将触发并播放视频。
prelearnBtn.addEventListener("click", function () {
setTimeout(function () {
player1.api("play")
}, 3000)
}, false);
ES2015 更短的语法 + 利用 setTimeout
的 第三个参数 将使我们的代码更短更好,同时保持它可读:
document.querySelector('button').addEventListener("click",() =>
setTimeout(console.log, 1000, "play")
)
<button>Play</button>
为了打印参数,上面的示例将 OP 的 player1.api
方法替换为 console.log
,这说明代码有效。