【问题标题】:Bool value returns false when the function set it to true in Javascript当函数在 Javascript 中将其设置为 true 时,布尔值返回 false
【发布时间】:2016-02-11 18:06:14
【问题描述】:

我正面临这个问题,在准备好的文档中创建了一个音频播放器,并创建了一个用于播放为 false 的 var,但每次函数似乎都被正确调用但没有将该变量设置为 true: 代码就是这个函数是从点击监听器调用的。

var cartSongPlayer = new Audio();
var playingStatus = false;
var playingTrack;

function switchTrack(trackID, trackSource) {
    //logging basic information:
    console.log('Current Track ID ' + trackID)
    console.log('Current Track Source ' + trackSource)

    console.log('Previous Track ID ' + playingTrack)
    console.log('Playing Status ' + playingStatus)

    if (playingStatus) {
        console.log('song is playing')
        if (trackID == playingTrack) {
            playingStatus == false;
            console.log('pausing current song')
            cartSongPlayer.pause();

        } else {
            console.log('moved to new song')
            playingStatus == true;
            playingTrack = trackID
            cartSongPlayer.src = trackSource;
            cartSongPlayer.play();
        }
    //no song is playing
    } else {
        console.log('song is not playing')
        if (trackID == playingTrack) {
            playingStatus == true;
            console.log('resumed song')
            cartSongPlayer.play();

        } else {
            console.log('started new song')
            playingStatus == true;
            playingTrack = trackID
            cartSongPlayer.src = trackSource;
            cartSongPlayer.play();
        }
    }
}

【问题讨论】:

    标签: javascript audio


    【解决方案1】:

    您似乎错误地使用了== 比较运算符,而不是= 赋值运算符。

    改变

    playingStatus == true;

    到

    playingStatus = true;

    【讨论】:

    • 是的,这就是原因。我厌倦了一整天的工作,陷入了这种境地。谢谢
    【解决方案2】:

    您永远不会更改playingStatus 的值。

    == 是相等运算符,而不是赋值运算符(即=)。

    【讨论】:

      猜你喜欢
      • 2020-06-23
      • 1970-01-01
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      • 2018-08-17
      相关资源
      最近更新 更多