使用 outerHTML 替换模板后,添加的 click 事件为何不触发?

使用 outerHTML 替换模板后,添加的 click 事件为何不触发?

使用 outerhtml 替换模板后,添加的 click 事件为何不触发?

您遇到的问题是,在使用 outerHTML 替换自定义标签后,添加的 click 事件无法触发。这是因为直接在 div 上监听点击事件无法捕获到嵌套的 span 元素上的 click 事件

解决方案

要解决这个问题,我们直接监听 div 的点击事件,并判断事件目标是否是 span。如果是,则删除这个 span 元素。

修改后的代码如下:

handleClick(e) {
  // 判断点击的是 SPAN 节点(删除图标)
  if (e.target.nodeName === "SPAN") {
    // 如果是删除按钮,删除标签
    e.target.parentNode.remove();
  }
}

以上就是使用 outerHTML 替换模板后,添加的 click 事件为何不触发?的详细内容,更多请关注其它相关文章!