Проблема с событиями: переменная хранит [object MouseEvent] вместо строки - PullRequest
0 голосов
/ 25 марта 2020

Я создаю очень простую страницу калькулятора.

У меня есть файл Javascript, в котором я создал метод для каждой операции, плюс метод для получения свойства element.id кнопки, на которую нажали ( чтобы я мог использовать операторы с кнопками и клавиатурой).

Затем я применил EventListener к каждой кнопке.

Проблема в том, когда я тестирую функцию sum(). Я думал, что процесс go выглядит следующим образом: у меня есть переменная func, в которой хранится операция, которая будет использоваться при нажатии = , и переменная num1 для хранения номера дисплея.

После нажатия + , num1 должен сохранить число на дисплее и func изменить строку "sum".

Затем пользователь вводит второе число и щелкает = , который сохраняет это отображаемое число как num2 и применяет операцию на основе переменной суммы.

Дело в том, что при следовании Chrome Инструментам разработчика я вижу, что num1 не сохраняется как строковое значение дисплея, но [объект MouseEvent].

https://codepen.io/Zukhu/pen/ExjOarp

let memory = 0;
let temp = 0;
var func = "";
let display = document.getElementById("calc-display");
let num1 = "";

function sum(num1) {
    num1 = display.innerHTML;
    func = "sum";
    ce();
}

function ce() {
        return display.innerHTML = 0;
    }

function onac() {
    if (display.innerHTML != "0") {
        ce();
    } else {
        memory = 0;
        temp = 0;
        func = "";
        num1 = "";
        ce();
    }
}


function getKey(e) {
    e = e || window.event;
    e = e.target || e.srcElement;

    display.innerHTML = e.innerHTML;
}


function equals(num1,num2, func) {
    num2 = display.innerHTML;
    switch(func) {
        case sum:
            display.innerHTML = num1 + num2;
            break;
        case subtract:
            break;
        case multiply:
            break;
        case divide:
            break;
        case percentage:
            break;
    }
}

Я думаю, что это самая важная часть Затем идет часть addEventListener. Если вы хотите поближе взглянуть, я предоставил ссылку на кодовый указатель: https://codepen.io/Zukhu/pen/ExjOarp

Мне бы очень хотелось, если бы вы могли помочь мне решить мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...