javascript - 在条件下执行不同的功能
问题描述
我想做这样的事情:
如果isPlaying = false;
那么函数应该只调用nextTrack()
而不应该调用,否则它们应该同时调用和previousTrack()
loadTrack(track_index)
playTrack()
loadTrack(track_index)
playTrack()
我该怎么做?
let playpause_btn = document.querySelector(".playpause-track");
let next_btn = document.querySelector(".next-track");
let prev_btn = document.querySelector(".prev-track");
let track_index = 0;
let isPlaying = false;
function playpauseTrack() {
if (!isPlaying) playTrack();
else pauseTrack();
}
function playTrack() {
curr_track.play();
isPlaying = true;
}
function pauseTrack() {
curr_track.pause();
isPlaying = false;
}
function nextTrack() {
if (track_index < track_list.length - 1)
track_index += 1;
else track_index = 0;
loadTrack(track_index);
playTrack();
}
function prevTrack() {
if (track_index > 0)
track_index -= 1;
else track_index = track_list.length;
loadTrack(track_index);
playTrack();
}
解决方案
function nextTrack() {
if (track_index < track_list.length - 1) {
track_index += 1;
}else{
track_index = 0;
}
loadTrack(track_index);
if(isPlaying == true){ playTrack(); }
}
或更好
function nextTrack() {
track_index = (track_index + 1) % track_list.length;
loadTrack(track_index);
if(isPlaying == false){ playTrack(); }
}
prevTrack()
因此。
推荐阅读
- javascript - 从 WKUserContentController 中删除单个特定用户脚本
- android-recyclerview - 启动 RecyclerView 时应用程序崩溃
- php - Traefik PathPrefix 重定向到 apache
- apache-kafka - 使用 kafka 流的 Topic1 到 Topic2
- c# - Input.GetkeyDown 在没有按钮按下的情况下返回 true
- javascript - 在 2 秒延迟后,页面加载上的 Fade In Div 不起作用?
- android - 排行榜消息:“嗯,Play 游戏出了点问题”
- php - 我在正确的地方定义了 KERNEL_CLASS 吗?
- unit-testing - 是否需要告诉 Perl 编译器不要优化带有忽略返回值的函数调用?
- azure-active-directory - Azure 客户端凭据授予誓言在 Graph Mail API 访问的混合设置中不起作用