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'を使うか、textnodeを作成して追加してください。 – Teemu