$.replaceWith() 但不会丢失事件处理程序和其他东西

问题描述 投票:0回答:2

我不想在委托中使用

live()
on()
:/

有没有其他方法可以替换元素的 HTML 代码但保留元素数据?

javascript html jquery jquery-events replacewith
2个回答
0
投票

当您通过 JavaScript 替换 HTML 元素时,您会删除其 DOM 节点,从而删除与其关联的所有信息。

(至少)有两种方法可以解决这个问题:

  • 在替换之前,将所需的数据保存到临时变量中,并在替换后注入它(很可能不适用于事件处理程序)。
  • 使用携带数据和处理程序的外部元素。

0
投票

不要用 $.replaceWith() 替换整个元素,而是尝试仅更改其属性。 示例(改变状态的图标):

$.attr({title: "new title", src: "newIcon.png"})
© www.soinside.com 2019 - 2024. All rights reserved.