Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于读取项的jQuery类转换器_Javascript_Jquery_Html_Css_Class - Fatal编程技术网

Javascript 用于读取项的jQuery类转换器

Javascript 用于读取项的jQuery类转换器,javascript,jquery,html,css,class,Javascript,Jquery,Html,Css,Class,我应该创建一个清单 如果用户单击某个任务(在本例中为a),该任务应消失并完成。我通过切换jQuery类解决了这个问题: $('li').click(function() { $(this).toggleClass("checked unchecked"); }); 一切正常。如果用户单击列表项,则类将从“未选中的”更改为“已选中的” 但是有一个添加新任务的选项(上面的小加号图标)。如果添加新的列表项,则类别更改器对此不起作用。如果你点击它,什么也不会发生 我希望你们能理解我,我的英语不是

我应该创建一个清单

如果用户单击某个任务(在本例中为a
  • ),该任务应消失并完成。我通过切换jQuery类解决了这个问题:

    $('li').click(function() {
       $(this).toggleClass("checked unchecked");
    });
    
    一切正常。如果用户单击列表项,则类将从“未选中的”更改为“已选中的

    但是有一个添加新任务的选项(上面的小加号图标)。如果添加新的列表项,则类别更改器对此不起作用。如果你点击它,什么也不会发生

    我希望你们能理解我,我的英语不是很好:-)


    看看:。

    您需要使用事件委派将事件附加到动态添加的元素

    事件委派允许我们将单个事件侦听器附加到父元素,该事件侦听器将为与选择器匹配的所有子体触发,无论这些子体现在存在还是将来添加


    这是因为当您将
    单击
    处理程序绑定到
  • 元素时,动态创建的新项不存在。要解决此问题,您可以使用事件委派
    开启
    方法:

    $('.todo-list').on('click', 'li', function() {
        $(this).toggleClass('checked unchecked');
    });
    
    这里的
    .todo list
  • 元素的静态父元素


    更多:

    您必须将事件绑定到动态生成的事件

    $('ul').on("click", "li", function() {
       $(this).toggleClass("checked unchecked");
    });
    
    $('ul').on("click", "li", function() {
       $(this).toggleClass("checked unchecked");
    });