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