javascript - 按钮 onClick() 函数未在 JavaScript 中第二次执行
问题描述
我的网页模拟电视,这意味着用户可以通过点击按钮在频道之间切换。
频道应根据经过的时间显示视频。初始设置工作正常,即如果我在第 10 秒更改频道,下一个频道在第 10 秒开始播放,依此类推。
但是用于将时间重置为零的开始按钮不起作用。
<div id="videoSelect">
<button data-video-url="vid1.mp4" onclick="startTime()">Start</button>
<button data-video-url="vid2.mp4" onclick="getTime()">Channel 1</button>
<button data-video-url="vid3.mp4" onclick="getTime()">Channel 2</button>
</div>
<video id="player" controls></video>
<script type="text/javascript">
var startTime, endTime, seconds;
//var cnt1=0, cnt2=0, cnt3=0;
function startTime() {
seconds = 0;
startTime = new Date();
}
function getTime() {
endTime = new Date();
var timeDiff = endTime - startTime; //in ms
// strip the ms
timeDiff /= 1000;
// get seconds
seconds = Math.round(timeDiff);
//document.write(seconds);
}
function swapVideo() {
player.src = this.getAttribute("data-video-url");
player.load();
player.currentTime = seconds;
player.play();
}
var videoPlayButtons = document.querySelectorAll("button"),
player = document.getElementById("player");
for (var i = 0; i < videoPlayButtons.length; i++) {
videoPlayButtons[i].addEventListener('click', swapVideo);
}
</script>
解决方案
您正在使用变量“startTime”覆盖您的函数“startTime()”,因为它们具有相同的名称。尝试将函数的名称更改为 resetTimer() 或其他名称,它会起作用。
var startTime, endTime, seconds;
function startTime() {
seconds=0;
startTime = new Date();
}
推荐阅读
- vue.js - Vue 3:Vue.createApp 不是构造函数
- sql - How to know if an element matches every in another table in SQL
- ruby-on-rails - 如何使用 vueonrails 对嵌套组件或开槽内容进行 SSR?
- javascript - 如何在我的 Vue 日历组件中以不同的方式设置不在当月的日期?
- haskell - 变量不在范围内:导入相关包时,getFileStatus 变为 Failed to load interface for 'System.Posix.Files.Common'
- c++ - 当我构建它时,将 FFTW 库动态链接到 Qt5 项目失败
- c# - 使用 MemoryStream 通过 WCF MessageContract 将文件上传到 SQL FileStream 在到达服务时为空
- python - Beowulf 集群上未出现进程
- javascript - 如何在函数外访问请求函数中定义的变量
- token - 如何对“create-passenger-name-record-sample-nodejs”Sabre API 示例的密码进行编码?