[TIL] 0414
8085 ワード
NotionClone Project Refactoring
ツリー構造リストでイベントを設定中にエラーが発生しました
に質問
ulに掛けたら
setEvent() {
console.log(this.$target);
this.$target.addEventListener('click', e => {
// e.stopPropagation();
console.log(e.currentTarget);
});
}
各アイテム(li)
setEvent() {
this.$node.addEventListener('click', e => {
// e.stopPropagation();
console.log(e.target.closest('.page').dataset.id);
});
}
最終メソッド
各項目にe.stopPropagation()を設定できますが、
品物が多くなると、活動が多すぎる.
トップレベルのul対応のPageListコンポーネントでは、親ラベルtarget属性にイベントを掛け、イベント委任を使用します.
// PageList.js
setEvent() {
this.addEventToTarget('click', '.page', e => {
const { onClickRemove } = this.state;
const { className } = e.target;
const id = e.target.closest('.page').dataset.id;
switch (className) {
case 'page_name':
push(`/pages/${id}`);
break;
case 'page_toggleButton':
console.log('toggle');
break;
case 'page_removeButton':
onClickRemove(id);
break;
case 'page_add_pageButton':
console.log('add');
break;
default:
}
});
}
}
Reference
この問題について([TIL] 0414), 我々は、より多くの情報をここで見つけました https://velog.io/@yooon26/TIL-0414テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol