Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 单击DblClick时使用jQuery修改动态生成的li元素_Javascript_Jquery_Dom Manipulation - Fatal编程技术网

Javascript 单击DblClick时使用jQuery修改动态生成的li元素

Javascript 单击DblClick时使用jQuery修改动态生成的li元素,javascript,jquery,dom-manipulation,Javascript,Jquery,Dom Manipulation,我有一个简单的待办事项列表,当生成一个新的ToDo时,它会创建一个新的li元素并将其附加到一个预先存在的ul中。我有一个toggleAll()函数,它添加了一个类,当双击li元素时,该类会遍历这些元素。我现在要做的是创建一个方法,当我双击一个li元素时,它会在类中为所单击的元素切换行,这样我就可以将各个TODO标记为已完成。我尝试使用常规的JS和jQuery,但都找不到使用它们的方法 我的TODO由一个文本属性和一个决定任务是否完成的布尔值组成。切换将布尔值设置为true,如果布尔值为true,

我有一个简单的待办事项列表,当生成一个新的ToDo时,它会创建一个新的
li
元素并将其附加到一个预先存在的
ul
中。我有一个
toggleAll()
函数,它添加了一个类,当双击
li
元素时,该类会遍历这些元素。我现在要做的是创建一个方法,当我双击一个
li
元素时,它会在类中为所单击的元素切换行,这样我就可以将各个TODO标记为已完成。我尝试使用常规的JS和jQuery,但都找不到使用它们的方法

我的TODO由一个文本属性和一个决定任务是否完成的布尔值组成。切换将布尔值设置为
true
,如果布尔值为
true
,则将
标记的
类添加到
li
元素的内容中

添加todo:函数(todo){ 这个。列表。推({ todoText:todo, 已完成:错误, }); console.log(this.list); }, 变量视图={ 显示:函数(){ var printed=document.getElementById('printedList'); printed.innerHTML=''; for(var i=0;i
。已标记{
文字装饰:线条贯通;
}


    您可以使用
    .addEventListener()
    或jQuery的
    .on()

    使用
    .addEventListener
    您需要循环浏览所有
    li
    s:

    const lis = document.querySelectorAll('li');
    lis.foreach(function(li) {
        li.addEventListener('dblclick', function(e) {
            e.target.classList.add('line-through');
        });
    });
    
    对于
    .on()
    ,您不必遍历元素

    $('li').on('dblclick', function(e) {
        $(e.target).addClass('line-through');
    });
    

    您的
    toggleAll
    函数是什么样子的?你尝试过什么功能?对象中是否也有addTodo?@SimplyComplexiable我尝试使用.addEventListener,但没有成功。然后我尝试了jQuery.on()方法,但它切换了
    ul
    中的所有
    li
    元素,而不仅仅是我单击的元素。是的,addTodo在一个对象中,我还有一个方法来删除todo,还有一个方法来修改todo。我还有另一个名为
    handlers
    的对象,它将DOM功能和JS链接起来。我按原样尝试了这段代码,但一开始它不起作用。在更改
    $('ul')
    $('li')
    之前,我尝试了一些不同的方法,这对选择单个
    li
    元素很有效。谢谢你,我很高兴你能成功。对不起,我一定是误解了情况。