首页 > 解决方案 > 在条件下执行不同的功能

问题描述

我想做这样的事情:

如果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();
    }

标签: javascriptjqueryif-statement

解决方案


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()因此。


推荐阅读