Switch 难道会循环?为什么 我按 一次 delete键, 控制台打印出4个Dom ,其中两个有些不同 ,尾部 没有 可点 方框
虽然我有 切换不同的 sDOM 和 eDOM, 但我还是没明白, 这里应该是拿到我最后切换到的, 两个 DOM吧.
function tdKeydown(event: any) {
// 整行 整列 内容的删除
switch (true) {
case event.key == 'Delete' && rowColSelect.selected == false:
const eRC = JSON.parse((eDOM as HTMLTableCellElement).getAttribute('rc') as string)
console.log(sDOM, eDOM) //这里为什么会打印出 4个Dom
if (sDOM == eDOM) {
tableJson.value.body[sRC.r][computeIndex(sRC.r, sRC.c)].value = ''
return
}
for (let i of tableJson.value.body) {
for (let x of i) {
const rc = x.rc
if (rc.c >= sRC.c && rc.maxc <= eRC.maxc && rc.r >= sRC.r && rc.maxr <= eRC.maxr ||
rc.c >= eRC.c && rc.maxc <= sRC.maxc && rc.r >= eRC.r && rc.maxr <= sRC.maxr ||
rc.c >= sRC.c && rc.maxc <= eRC.maxc && rc.r >= eRC.r && rc.maxr <= sRC.maxr ||
rc.c >= eRC.c && rc.maxc <= sRC.maxc && rc.r >= sRC.r && rc.maxr <= eRC.maxr
) {
x.value = ''
}
}
}
break
case event.key == 'Escape':
const oldTdDOM = document.getElementById(`${sRC.r}-${sRC.c}`) as HTMLTableCellElement
// oldDOM.blur()
oldDOM.style.pointerEvents = 'none'
singleCellRange(oldTdDOM, 2)
editState = false
break
}