如何将事件侦听器添加到动态创建的HTML列表元素?

约翰·艾里森

我正在尝试创建一个待办事项列表应用程序,在该应用程序中,单击该按钮时,列表元素会切换到checked添加删除线样式的类。我在一次定位一个列表元素时遇到了麻烦,而且没有检查整个列表。如何为每个项目动态添加事件侦听器?目前,使用以下代码,已检查添加的项目,我无法弄清原因。

我的HTML如下所示:

<div id="body">
            <form id="form" onsubmit="newElement()" target="_self">
                <input type="text" id="task" placeholder="What's on the agenda?">
            </form>

            <ul id="list">
                <li class = "checked">test</li >
            </ul>
        </div>

我的函数通过此函数从文本框中获取数据

function newElement() {
    event.preventDefault(); // stop default redirect

    /* create a list item and put the inputted text within */
    var li = document.createElement("li"); // create a list item
    var inputValue = document.getElementById("task").value; // value of text box
    var t = document.createTextNode(inputValue); // create a text node of the box value
    li.appendChild(t); // put the text node in the li
    li.addEventListener('click', checkToggle(li)); // add event listener for a click to toggle
                                                   // a strikethrough

    /* append the li item to the ul */
    appendItem("list", li); 
}

然后checkToggle功能显示如下

/* make items get checked when clicked */
function checkToggle(li) {
    li.classList.toggle("checked");
}

但是,在加载页面时,已添加时会自动检查每个元素。

里特什·坎德卡(Ritesh Khandekar)

您正在执行功能- checkToggle(li)

你应该像addEventListener('click', checkToggle)没有括号一样附加功能

function newElement() {
event.preventDefault(); // stop default redirect

/* create a list item and put the inputted text within */
var li = document.createElement("li"); // create a list item
var inputValue = document.getElementById("task").value; // value of text box
var t = document.createTextNode(inputValue); // create a text node of the box value
li.appendChild(t); // put the text node in the li
li.addEventListener('click', checkToggle); // add event listener for a click to toggle
                                               // a strikethrough

/* append the li item to the ul */
document.querySelector("ul").appendChild(li);
}

function checkToggle() {
this.classList.toggle("checked");
}
.checked{color: blue;}
<div id="body">
        <form id="form" onsubmit="newElement()" target="_self">
            <input type="text" id="task" placeholder="What's on the agenda?">
        </form>

        <ul id="list">
            <li class = "checked">test</li >
        </ul>
    </div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将事件侦听器添加到动态添加的HTML元素

来自分类Dev

将事件侦听器添加到动态创建的元素中

来自分类Dev

Dojo-将事件侦听器添加到动态创建的元素

来自分类Dev

如何将侦听器事件添加到由DefaultListModel对象添加的JList元素?

来自分类Dev

如何将侦听器事件添加到由DefaultListModel对象添加的JList元素?

来自分类Dev

如何将事件侦听器添加到数组中的每个元素?

来自分类Dev

如何将事件侦听器添加到仅按钮元素

来自分类Dev

如何将事件侦听器添加到“+”缩放元素?

来自分类Dev

将事件侦听器添加到使用Javascript从API捕获的动态生成的元素中

来自分类Dev

jQuery-将事件侦听器添加到动态创建的按钮

来自分类Dev

将事件侦听器添加到动态创建的按钮

来自分类Dev

如何将事件侦听器添加到使用Jquery Event构造函数创建的Jquery Event中

来自分类Dev

将事件侦听器添加到HTML元素集合

来自分类Dev

如何将侦听器添加到表?

来自分类Dev

编译后如何将事件侦听器添加到Handlebars模板?

来自分类Dev

如何将事件侦听器添加到JavaScript中的许多按钮?

来自分类Dev

如何将onkeypress事件侦听器添加到输入标签

来自分类Dev

如何将事件侦听器添加到tone.js中播放的音符

来自分类Dev

如何将事件侦听器添加到Redux表单

来自分类Dev

如何将事件侦听器添加到<input type = number>的默认箭头按钮

来自分类Dev

如何将事件侦听器添加到画布上绘制的矩形?

来自分类Dev

如何将事件侦听器添加到模板字符串

来自分类Dev

iOS UIWebView:如何将侦听器添加到DOM事件?

来自分类Dev

如何将事件侦听器添加到JavaScript中的许多按钮?

来自分类Dev

如何将事件侦听器添加到OverlayView?

来自分类Dev

如何将事件侦听器添加到 Map 标记 [] 数组

来自分类Dev

如何将 updateend 事件侦听器添加到两个对象?

来自分类Dev

如何通过JavaScript将事件侦听器添加到body元素?

来自分类Dev

将事件侦听器添加到由事件侦听器添加的表单元素

Related 相关文章

  1. 1

    将事件侦听器添加到动态添加的HTML元素

  2. 2

    将事件侦听器添加到动态创建的元素中

  3. 3

    Dojo-将事件侦听器添加到动态创建的元素

  4. 4

    如何将侦听器事件添加到由DefaultListModel对象添加的JList元素?

  5. 5

    如何将侦听器事件添加到由DefaultListModel对象添加的JList元素?

  6. 6

    如何将事件侦听器添加到数组中的每个元素?

  7. 7

    如何将事件侦听器添加到仅按钮元素

  8. 8

    如何将事件侦听器添加到“+”缩放元素?

  9. 9

    将事件侦听器添加到使用Javascript从API捕获的动态生成的元素中

  10. 10

    jQuery-将事件侦听器添加到动态创建的按钮

  11. 11

    将事件侦听器添加到动态创建的按钮

  12. 12

    如何将事件侦听器添加到使用Jquery Event构造函数创建的Jquery Event中

  13. 13

    将事件侦听器添加到HTML元素集合

  14. 14

    如何将侦听器添加到表?

  15. 15

    编译后如何将事件侦听器添加到Handlebars模板?

  16. 16

    如何将事件侦听器添加到JavaScript中的许多按钮?

  17. 17

    如何将onkeypress事件侦听器添加到输入标签

  18. 18

    如何将事件侦听器添加到tone.js中播放的音符

  19. 19

    如何将事件侦听器添加到Redux表单

  20. 20

    如何将事件侦听器添加到<input type = number>的默认箭头按钮

  21. 21

    如何将事件侦听器添加到画布上绘制的矩形?

  22. 22

    如何将事件侦听器添加到模板字符串

  23. 23

    iOS UIWebView:如何将侦听器添加到DOM事件?

  24. 24

    如何将事件侦听器添加到JavaScript中的许多按钮?

  25. 25

    如何将事件侦听器添加到OverlayView?

  26. 26

    如何将事件侦听器添加到 Map 标记 [] 数组

  27. 27

    如何将 updateend 事件侦听器添加到两个对象?

  28. 28

    如何通过JavaScript将事件侦听器添加到body元素?

  29. 29

    将事件侦听器添加到由事件侦听器添加的表单元素

热门标签

归档