2017-12-18 119 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"); 
      } 
     } 
    } 
}