【问题标题】:event.target in function doesn't give expected result函数中的 event.target 没有给出预期的结果
【发布时间】:2017-11-25 15:53:47
【问题描述】:

我决定用 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? 请帮我透露一下。

【问题讨论】:

    标签: javascript events dom-events addeventlistener


    【解决方案1】:

    你的函数 makeTaskHtml 有 2 个参数:

    function makeTaskHtml(str, onCheck)
    

    但你只是用一个来调用它:

    addTask(lists.todo, makeTaskHtml('Test-todo'));
    

    您需要传入onCheck 作为第二个参数或从函数声明中删除第二个参数。

    【讨论】:

      猜你喜欢
      • 2012-05-01
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      相关资源
      最近更新 更多