2014-12-10 52 views
1

我對HTML和JavaScript是全新的,我完全失去了。動態創建列表項onclick

我想創建一個待辦事項列表,其中輸入添加到列表的頂部,並且當列表中的項目被點擊時,它將被刪除。

我想避免使用JQuery或純js以外的任何東西。

<!DOCTYPE html> 
<html> 

<script type="text/JavaScript"> 

var number_of_items = 0; 
var list = []; 
var list_container = document.createElement("div"); 
list_container.id = "container"; 

function makelist(){ 
    list_container.innerHTML = ""; 

    list.unshift(document.getElementById("todo").value); 

    ++number_of_items; 

    document.getElementsByTagName("body")[0].appendChild(list_container); 
    var list_element = document.createElement("ul"); 
    list_container.appendChild(list_element); 

    for(var i=0 ; i < number_of_items ; ++i){ 
      var list_item = document.createElement("li"); 
       list_item.innerHTML = list[i]; 

      //The problem is here 
      list_item.onClick = function(){ 

       alert("working"); 
       list.splice(i, 1); 
       --number_of_items; 
       makelist(); 

      } 

      list_element.appendChild(list_item); 
    } 
} 

</script> 

<body> 
Todo: <input type="text" id="todo"> 

<input type="button" value="Submit" onclick="makelist()" /> 



</body> 
</html> 

問題是,list_item onclick函數從未激活。爲什麼?

對於我提出問題的方式有任何問題,我很抱歉。

+0

你怎麼知道的功能不 '激活'?你有任何錯誤? – putvande 2014-12-10 23:12:19

+0

什麼都沒有發生。我在函數中加入了一個警告來測試它,警報從未出現過。 – DoctorMcbob 2014-12-10 23:13:52

+0

您是否在輸入字段中添加了值?否則,你會得到一個錯誤。 – putvande 2014-12-10 23:14:20

回答

3

http://jsbin.com/wicopu/1/edit

使用onclick代替onClick ...

,甚至更好...使用event listeners

+1

在行'list_item.onClick =函數(){'... PLZ不downvote你不明白。 – rafaelcastrocouto 2014-12-10 23:16:00

+1

我會在我的收藏夾中設置此問題及其答案。它顯示瞭如何在純Javascript中設置事件。 – SaidbakR 2014-12-10 23:19:52

+1

謝謝!我對代碼的所有經驗都是在python和java中進行的,所以我習慣於在問題出現時錯過了國會大廈。我早該知道。 – DoctorMcbob 2014-12-10 23:28:03