MCPcopy
hub / github.com/iChochy/NCE / bindUnitList

Method bindUnitList

js/ReadingSystem.js:920–941  ·  view source on GitHub ↗

* 绑定单元列表事件

()

Source from the content-addressed store, hash-verified

918 * 绑定单元列表事件
919 */
920 bindUnitList() {
921 if (this.bindingFlags.unitList || !this.dom.unitList) return;
922 this.bindingFlags.unitList = true;
923
924 delegate(this.dom.unitList, 'click', '.unit-item', (event) => {
925 // event.currentTarget 指向绑定事件的父容器,使用 event.target.closest 获取实际的单元项
926 const unitItem = event.target.closest('.unit-item');
927 if (!unitItem) return;
928 const unitIndex = parseInt(unitItem.dataset.unitIndex);
929 this.loadUnitByIndex(unitIndex);
930 });
931
932 delegate(this.dom.unitList, 'keydown', '.unit-item', (event) => {
933 if (event.key !== 'Enter' && event.key !== ' ') return;
934 event.preventDefault();
935 // event.currentTarget 指向绑定事件的父容器,使用 event.target.closest 获取实际的单元项
936 const unitItem = event.target.closest('.unit-item');
937 if (!unitItem) return;
938 const unitIndex = parseInt(unitItem.dataset.unitIndex);
939 this.loadUnitByIndex(unitIndex);
940 });
941 }
942
943 /**
944 * 绑定单元选择器事件

Callers 1

bindAllEventsMethod · 0.95

Calls 2

loadUnitByIndexMethod · 0.95
delegateFunction · 0.90

Tested by

no test coverage detected