Warum kooperiert addEventListener nur mit dem CANCEL
Label Element und nicht mit dem ersten, auch wenn ich den zweiten entferne? Ich bekomme keine Fehlermeldungen in der Konsole.Warum addEventListener nicht zuhören?
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 + = '| '' hängt nicht an, es zerstört alles im Element und erstellt neuen Inhalt. Der Ereignis-Listener wurde dem ursprünglichen Element hinzugefügt, nicht jedoch dem neu erstellten Element. – Teemu
huh! das war einfach, danke. Nicht '+ =' anhängen? – fivethous
Nein, es ist nur eine Verknüpfung zu 'innerHTML = innerHTML + '| "". Verwenden Sie 'insertAdjacentHTML' oder erstellen und fügen Sie einen Textknoten an. – Teemu