Ich mache einen Rechner und stolpere über die erste JS-Hürde. Ich versuche, Ereignis-Listener auf den Zahlentasten einzurichten, so dass eine Funktion bei Klick ausgeführt wird, aber ich bekomme den Fehler, dass ich einen Ereignishandler nicht auf Null einrichten kann. Aber ich kann nicht sehen, wo ich falsch liege !?eventListener am Tisch funktioniert nicht
Ich bin versuchen meinen Code zu organisieren, wie ich entlang ähnlich einem Online-Kurs, den ich getan habe - alle Funktionen zu trennen und zu versuchen, es leicht zu lesen.
Siehe Code und Dank im Voraus:
//TOTAL CONTROLLER
var totalController = (function() {
})();
//UI CONTROLLER
var UIController = (function() {
var DOMstrings = {
calcbuttons: '.calcButtons',
number: '.number',
operator: '.operator',
equals: '.equals',
total: '#total'
};
return {
getDOMstrings: function() {
return DOMstrings;
}
};
})();
//GLOBAL CONTROLLER
var controller = (function (totalCTRL, UICtrl) {
var setupEventListeners = function() {
var DOM = UICtrl.getDOMstrings();
var el = document.querySelector(".calcButtons");
el.addEventListener('click', function (e) {
//var table = e.target;
//if (table.classList)
console.log(e);
//ctrlAddNumber();
});
// click operator
//click C
//click AC
//click equals
};
var ctrlAddNumber = function() {
var selectedNumber;
//1. get number from html from click
selectedNumber = document.querySelector(DOM.number).innerHTML;
console.log(number);
//2. add to display
};
return {
init: function() {
console.log('Application has started.');
setupEventListeners();
}
};
})(totalController, UIController);
controller.init();
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<link type="text/css" rel="stylesheet" href="calc_style.css" />
<style>
@import url('https://fonts.googleapis.com/css?family=Lato');
</style>
<script type='text/javascript' src='calcjs.js'></script>
<title>JavaScript Calculator</title>
</head>
<body>
<div id="container">
<div id="calculator">
<div id=t otal></div>
<table class="calcButtons" cellspacing="0" cellpadding="0">
<tr>
<td class="wide">AC</td>
<td class="wide">←</td>
<td class="wide"></td>
<td class="operator"></td>
</tr>
<tr>
<td class="number">7</td>
<td class="number">8</td>
<td class="number">9</td>
<td class="operator">÷</td>
</tr>
<tr>
<td class="number">4</td>
<td class="number">5</td>
<td class="number">6</td>
<td class="operator">×</td>
</tr>
<tr>
<td class="number">1</td>
<td class="number">2</td>
<td class="number">3</td>
<td class="operator">-</td>
</tr>
<tr>
<td class="number">0</td>
<td>.</td>
<td id="equals" class="equals">=</td>
<td class="operator">+</td>
</tr>
</table>
</div>
</div>
</body>
</html>
Es ist generell eine gute Idee, Ihre Tasten tatsächlich
Stellen Sie außerdem sicher, dass Ihr JS-Skript nach dem HTML-Code ausgeführt wird - andernfalls wird nichts gefunden, das Sie hinzufügen können. –
Vielen Dank, dass Sie sich beide angesehen haben. Hinzufügen der JS-Datei an der Unterseite hat das Problem gelöst ..! – Tor