私はこのコードを持ってJavascriptのコードは、ボタンクラスが他のクラスでラップされたときに動作していない
<ul>
<li id="1495488881973">
<div class="title">some title</div>
<div class="comment">some comment</div>
<div class="delete">Delete</div>
</li>
</ul>
この機能はそのまま残しておけば、削除ボタンをクリックするとクリックされたコメントのみが削除されますそれはすべきだ。
私が抱えている問題は、削除ボタンをラップする他のdivを追加すると、削除ボタンが削除されるということです。例えば
...私はこれを行う場合:今
function commentTemplate({title, comment}) {
return `
<div class="panel">
<div class="title">${title}</div>
<div class="comment">${comment}</div>
<button class="delete">Delete</button>
</div>
`
};
を、私はそれがすべてのレコードではなくワンクリックそれが必要のように削除し、削除ボタンをクリックします。
この行のためですか?
if (e.target.classList.contains('delete')) {
どうすればこの問題を解決できますか?あなたはdivの中にあなたの削除ボタンをラップするとき、あなたのクリックのターゲットはラッピングdiv要素となりますので
comments.addEventListener('click', (e) => {
var reviewNode = e.target.parentNode
if (e.target.classList.contains('delete')) {
var id = reviewNode.id;
db.ref('comments/' + id).remove();
}
});
なり? 'target'の代わりに' e.currentTarget'を試してみてください。 –
'reviewNode.id'のように見えないので' comments/'を削除するので、' reviewNode'はどうやって取得できますか? – Sheng
var reviewNode = document.getElementById(data.key); – dj2017