Второй аргумент, предоставленный addEventListener
, должен быть функцией.Если вы поместите туда функцию invocation , эта функция будет выполнена немедленно с возвращаемым значением, назначенным в качестве обработчика.Но если возвращаемое значение не является функцией, прослушиватель событий не работает.
В вашем случае вы просто хотите, чтобы при нажатии кнопки запускался getInput
- getInput
не являетсяфункция высшего порядка, поэтому просто передайте саму функцию, а не вызывайте ее:
button.addEventListener('click', getInput);
Как это
var button = document.getElementById("submit");
var toDoList = {
items: [],
add: addItem,
update: updateList
};
function addItem(string) {
toDoList.items.push(string);
}
function updateList() {
var output = document.getElementById("output");
output.innerHTML = toDoList.items;
}
function getInput() {
var input = document.getElementById("userInput").value;
toDoList.add(input);
toDoList.update();
//clearing the text field for next use
document.getElementById("userInput").innerHTML = "";
}
button.addEventListener('click', getInput);
<h1>Homework 5: JS Objects & HTML DOM</h1>
<div id="input">
<input id="userInput" type="text" placeholder="Type a word">
<button id="submit">Add</button>
</div>
<div id="output"></div>
<h1>Design</h1>
<h1>Challenges</h1>