0
爲什麼addEventListener只與CANCEL
標籤元素配合,而不是第一個,即使我刪除第二個?我在控制檯中沒有收到任何錯誤消息。爲什麼addEventListener不聽我說?
var ctrl = document.createElement('div');
ctrl.id = 'ctrl';
var showhide = document.createElement('label');
showhide.id = 'showhide';
showhide.innerHTML = 'Show/hide output';
showhide.setAttribute('onclick', 'return false;');
showhide.addEventListener("click", function() {
alert('Show/hide');
});
var cancel = document.createElement('label');
cancel.id = 'cancel';
cancel.innerHTML = 'CANCEL';
cancel.setAttribute('onclick', 'return false;');
//document.getElementById('showhide').insertAdjacentHTML('afterEnd', cancel.outerHTML);
cancel.addEventListener("click", function() {
alert('cancel');
});
ctrl.appendChild(showhide)
ctrl.innerHTML += ' | '
ctrl.appendChild(cancel)
document.body.appendChild(ctrl)
'ctrl.innerHTML + ='| ''不會追加,它會銷燬元素中的所有內容,並創建新的內容。事件監聽器被添加到原始元素,但不添加到新創建的元素。 – Teemu
呵呵!這很簡單,謝謝。不是'+ ='追加? – fivethous
不是,它只是'innerHTML = innerHTML +'的一個快捷方式。 「'。使用'insertAdjacentHTML'或創建並追加一個文本節點。 – Teemu