我决定在视频播放之后重复使用JavaScript中的待办事项列表,但视频已经有2年了,因此可能会有一些属性或其他内容发生变化而被取消,实际上我不知道。 这是HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>To-Do list</title>
<link rel="stylesheet" href="main.css">
</head>
<body>
<input type="text" id="input">
<button id="btn">Add</button>
<hr>
<ul id="todo">
</ul>
<ul id="done">
</ul>
<script src="main.js"></script>
</body>
</html>
这是JavaScript:
(function() {
let input = document.getElementById('input');
let btn = document.getElementById('btn');
let lists = {
todo: document.getElementById('todo'),
done: document.getElementById('done')
};
let makeTaskHtml = function(str, onCheck) {
let el = document.createElement('li');
let checkbox = document.createElement('input');
let label = document.createElement('span');
checkbox.type = 'checkbox';
checkbox.addEventListener('click', onCheck);
label.textContent = str;
el.appendChild(checkbox);
el.appendChild(label);
return el;
};
let addTask = function(list, task) {
list.appendChild(task);
};
let onCheck = function(event) {
let task = event.target;
console.log(task);
};
addTask(lists.todo, makeTaskHtml('Test-todo'));
addTask(lists.done, makeTaskHtml('Test-done'));
}());
在onCheck函数中我尝试了之前在此函数中定义的console.log任务但没有发生任何事情:既没有错误也没有结果我希望看到 有什么问题?可能是因为event.target ???还是addEventListener? 请帮我透露一下。提前致谢
答案 0 :(得分:1)
你的函数makeTaskHtml
有2个参数:
function makeTaskHtml(str, onCheck)
但你只是用一个来称呼它:
addTask(lists.todo, makeTaskHtml('Test-todo'));
您需要传入onCheck
作为第二个参数,或从函数声明中删除第二个参数。