"li.onclick = () => {\n listDivs.forEach(allDiv => allDiv.style.display = "none");\n div.style.display = "block";\n optionList.style.display = "none";\n\n document.querySelector(".confirm").onclick = () => {\n if (item.data.includes(userValue.value)) {\n alert("已存在")\n return\n }\n let span = document.createElement("span")\n span.innerText = userValue.value\n div.appendChild(span)\n item.data.push(userValue.value)\n }\n}\n\n div.onclick = (event) => {\n if (event.target.tagName === 'SPAN') {\n event.target.remove();\n item.data = item.data.filter(item => item !== event.target.innerText);\n }\n}\n\n item.data.forEach(subitem => {\n let span = document.createElement("span")\n span.innerText = subitem\n div.appendChild(span)\n});\n "}\n\n通过将点击事件绑定在父元素div上,利用事件冒泡机制,点击span时会触发div的点击事件,然后判断点击的元素是否是span,如果是则移除该span并更新item.data。这样可以实现删除功能,并避免了为每个span都绑定一个点击事件。


原文地址: https://www.cveoy.top/t/topic/p3Ze 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录