0
我試圖在純Javascript中創建一個'CRUD',它幾乎完成了,唯一需要的是準備值爲<li>
的輸入,要做到這一點,我會喜歡在功能insert()
中動態創建的複選框中添加onclick
事件,但每次單擊複選框時都不會發生任何事情。在動態複選框上添加onclick事件
<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function(){
btnInsert = document.getElementById("btnInsert");
btnEdit = document.getElementById("btnEdit");
btnDelete = document.getElementById("btnDelete");
vname = document.getElementById("tbName");
ul = document.getElementsByTagName("ul")[0];
btnInsert.onclick = insert;
btnDelete.onclick = remove;
}
function insert(){
li = document.createElement("li");
li.innerHTML = vname.value;
li.innerHTML += " <input type='checkbox' onclick='select()' value='Select' /> Update";
ul.appendChild(li);
vname.value = "";
}
function select(){
alert("Checked");
}
function remove(){
var lis = document.getElementsByTagName("li");
for(i = 0; i<lis.length; i++){
lis[i].onclick = function(){
this.remove();
}
}
}
</script>
</head>
<body>
<label for="tbName">Name: </label>
<input name="tbName" id="tbName"/><br /><br />
<button id="btnInsert">Insert</button>
<button id="btnEdit">Edit</button>
<button id="btnDelete">Delete</button>
<br /><br />
<ul>
</ul>
</body>
</html>
[在動態創建的元素上添加事件偵聽器的可能的副本](http://stackoverflow.com/questions/14258787/add-event-listener-on-elements-created-dynamically) –
在您的插入函數中添加事件監聽器'li'就像這樣:'li.addEventListener('click',callback);'其中'callback'是你想綁定到事件的函數。編輯:第二次看,你添加輸入INTO列表項,在這種情況下,你只需要使用「而不是」,它應該工作。另外我認爲你的腳本在末尾有一個額外的? – Dellirium
1)'' addEventListener'可能是你想要的。2)儘量避免有很多全局變量。 – gcampbell