我决定用 JavaScript 制作一个待办事项列表,复制视频中显示的内容,但视频已经两年了,所以可能是某些属性或其他内容发生了变化并已被弃用,我真的不知道。这是 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?请帮我揭露它。
您的函数makeTaskHtml
需要 2 个参数:
function makeTaskHtml(str, onCheck)
但是你只用一个来调用它:
addTask(lists.todo, makeTaskHtml('Test-todo'));
您需要onCheck
作为第二个参数传入或从函数声明中删除第二个参数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句