私はイベントの委任を実践しています。私はdivに座っている記事タグ内に4段落を設定しています。 .Greenクラスを適用して、各段落の背景をクリックするときだけ変更したいと思います。しかし、緑色のクラスは、親(記事)と祖父母(div)にのみ適用されます。私のコードに何が間違っているか教えてください。イベントターゲットの親に特定のクラスを適用しないこと
function paintParagraph(e) {
\t if (!e) {
\t \t e = window.event;
\t }
\t var target, parent;
\t target = e.target || e.srcElement;
\t parent = target.parentNode;
\t parent.className = 'green';
\t e.stopPropagation();
\t
}
var paragraphList = document.querySelector('#p-list');
paragraphList.addEventListener('click', function(e) {
paintParagraph(e);
}
, false);
\t p {
\t \t padding: 10px;
\t \t margin: 20px;
\t \t border: 2px solid;
\t \t line-height: 1.5em;
\t \t letter-spacing: 0.2em;
\t \t text-align: center;
\t }
.green {
\t \t background-color: green;
\t }
<div id="main">
\t \t <article id="p-list">
\t \t \t <p class="para">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vitae perferendis culpa velit excepturi iste reprehenderit quaerat debitis repudiandae itaque beatae. Numquam dolorum ducimus iusto temporibus facilis error possimus amet, illo.</p
\t \t \t ><p class="para2">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vitae perferendis culpa velit excepturi iste reprehenderit quaerat debitis repudiandae itaque beatae. Numquam dolorum ducimus iusto temporibus facilis error possimus amet, illo.</p
\t \t \t ><p class="para3">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vitae perferendis culpa velit excepturi iste reprehenderit quaerat debitis repudiandae itaque beatae. Numquam dolorum ducimus iusto temporibus facilis error possimus amet, illo.</p
\t \t \t ><p class="para4">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vitae perferendis culpa velit excepturi iste reprehenderit quaerat debitis repudiandae itaque beatae. Numquam dolorum ducimus iusto temporibus facilis error possimus amet, illo.</p
\t \t ></article>
\t </div>
使用 'target.className =「緑」;' – Rayon
私はこの質問を投稿したが、それはまだ段落タグおよびそれを含む記事のタグに緑色のクラスを適用する前に、私はそれを試してみました同じように。記事タグに影響を与えないようにするにはどうすればよいですか? –
'target.parentNode'にも' apply.parentNode'を適用しています。 'parentNode'は現在のノードの父だけです。 – Rayon