Javascript - 代码结构问题。从 "if" 语句返回 bool 并在 "else if" 中重用它

Javascript - Code structuring issue. Returning bool from "if" statement and reuse it in "else if"

解决此类问题的实用方法是什么?

我正在编写一个函数,旨在在切换时左右移动 div。

我决定采用的方法如下。 有人可以解释为什么这不像我预期的那样有效吗?

我知道可能还有另一种解决方案,但解决此问题将使我能够将这种做法用于其他情况。

如果我理解正确的话,bool 不能使用 return 语句 returned,但是带有 bool 的变量可以吗?

出于某种原因,我的函数没有达到“else if”语句,我认为在切换“if”内部的 bool 后它会...

这段代码的部分是基本的,所以我不会包含完整的脚本。

代码:

menuBtn = document.getElementById('mm');
menuBtn.onclick = function() {onMenuPress()};
let sidebar = document.getElementById('sidebar');

function onMenuPress() {
    let move = true;
    console.log(move);

    if (move == true) {
        sidebar.style.transform = "translate(-300px)";
        let move = false;
        console.log("pressed");

        return move;
    } 
    else if (move == false) {
        sidebar.style.transform = "translate(100px)";
        console.log("comeback");
    }

提前感谢所有回复。

变量声明错误。

您必须声明一个全局变量。

正确代码

menuBtn = document.getElementById('mm');
menuBtn.onclick = function() {onMenuPress()};
let sidebar = document.getElementById('sidebar');
let move = true;

function onMenuPress() {
    console.log(move);

    if (move == true) {
        sidebar.style.transform = "translate(-300px)";
        move = false;
        console.log("pressed");

        return move;
    } 
    else if (move == false) {
        sidebar.style.transform = "translate(100px)";
        console.log("comeback");
    }

与全局变量有关的愚蠢错误。更正了以下需要的其他人的代码:

menuBtn = document.getElementById('mm');
menuBtn.onclick = function() {onMenuPress()};
let sidebar = document.getElementById('sidebar');
move = true;

function onMenuPress() {
    
    console.log(move);

    if (move == true) {
        sidebar.style.transform = "translate(-300px)";

        move = false;
        console.log(move);
        console.log("pressed");

        return move;
    } 
    else if (move == false) {
        sidebar.style.transform = "translate(100px)";
        console.log("comeback");
        move = true;
    }
}