2017-12-18 130 views
0

我正在做一个待办事项列表...当任务完成后,我需要能够点击它,然后添加一个类到该项目...它的作品,但我必须双击。任何建议?todolist双击添加课程?

list.onclick = function() { 
     var list = document.getElementsByTagName('li'); 
     for (var i = 0; i < list.length; i++) { 
      list[i].onclick = function() { 
       if (!this.classList.contains("checked") || this.classList.contains("checked")) { 
        this.classList.add("checked"); 
       } else { 
        this.classList.remove("checked"); 
       } 
      } 
     } 
    } 
+0

不应该删除这部分代码吗? '|| this.classList.contains(“checked”)' – Adelin

+0

'!this.classList.contains(“checked”)|| this.classList.contains(“checked”))'总是正确的吗? –

+0

只需使用'this.classList.toggle(“checked”);'。并重新检查条件 – Satpal

回答

2

据我了解这个功能的目的是每次用户点击它时检查或取消选中列表元素。为此,首先我们需要确定'class'是否存在并删除它。在其他情况下,只需将'class'添加到classList属性即可。

list.onclick = function() 
{ 
    var list = document.getElementsByTagName('li'); 
    for (var i = 0; i < list.length; i++) 
    { 
     list[i].onclick = function() 
     { 
      if (this.classList.contains("checked") 
      { 
       this.classList.remove("checked"); 
      } 
      else 
      { 
       this.classList.add("checked"); 
      } 
     } 
    } 
}