如果不工作,则多条语句else

multiple statements else if not working

本文关键字:多条语句 else 工作 如果不      更新时间:2023-09-26

当玩家的音量级别发生变化时,我试图替换音量图像,
但是在这个代码中,第二个else if不起作用,
3°图像(VOL-1.png)没有出现…

所有其他图像(VOL-off, VOL-2, VOL-on)显示正常…

var myVideo1 = document.getElementById('myVideo1');
var bttnMuteUnmute = document.getElementById("bottoncinoMuteUnmute_myVideo1");
myVideo1.addEventListener("volumechange", function () {
    if (myVideo1.muted || myVideo1.volume <= 0.009) {
        bttnMuteUnmute.style.backgroundImage = "url(buttons-VOL-off.png)";
    } else if (myVideo1.volume <= 0.65) {
        bttnMuteUnmute.style.backgroundImage = "url(buttons-VOL-2.png)";
    } else if (myVideo1.volume <= 0.4) {
        bttnMuteUnmute.style.backgroundImage = "url(buttons-VOL-1.png)";
    } else {
        bttnMuteUnmute.style.backgroundImage = "url(buttons-VOL-on.png)";
    }
}, false);

我做错了什么?

任何小于0.4的数也将小于0.65。因此,当数字小于0.4时,与<= 0.65比较为真,因此显示VOL-2的图片。

所以,你只需要改变条件的顺序,就像这样

...
} else if (myVideo1.volume <= 0.4) {
bttnMuteUnmute.style.backgroundImage = "url(buttons-VOL-1.png)";
} else if (myVideo1.volume <= 0.65) {
bttnMuteUnmute.style.backgroundImage = "url(buttons-VOL-2.png)";
} else {
...

由于if-else语句是按顺序求值的,因此它会卡在VOL-2中,因为VOL-1的任何选项也满足VOL-2。如果您要切换VOL-1和VOL-2的顺序,它应该工作