Bug Tracker

Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#13019 closed bug (fixed)

New pre-1.9 .replaceWith() behavior leaks data and events

Reported by: dmethvin Owned by: dmethvin
Priority: high Milestone: 1.9
Component: manipulation Version: git
Keywords: Cc:
Blocked by: Blocking:


The changes to 1.9 .replaceWith() that update the set for a disconnected element can leak jQuery data and events because the element is updated in the set without calling .remove() on the element in the set.

Upon reflection, I think it's a mistake to attempt to update the set anyway, since we always .pushStack() in those cases. So I think we should do the same as .before() or .after() and simply ignore disconnected elements.

Change History (4)

comment:1 Changed 4 years ago by dmethvin

  • Component changed from unfiled to manipulation
  • Milestone changed from None to 1.9
  • Owner set to dmethvin
  • Priority changed from undecided to high
  • Status changed from new to assigned
  • Version changed from 1.8.3 to git

comment:2 Changed 4 years ago by dmethvin

ref #11338

comment:3 Changed 4 years ago by Dave Methvin

  • Resolution set to fixed
  • Status changed from assigned to closed

Fix #13019. Disconnected nodes with .replaceWith are a noop. Close gh-1062.

Changeset: f8f52cfcf4ff5d0e3e50a73b03aff0fd9c72105b

comment:4 Changed 4 years ago by Dave Methvin

Ref #13019 and gh-1062. Use parentNode check instead of isDisconnected().

Changeset: 2eda329be6ac2f68e9b313ee607ea24165c68755

Note: See TracTickets for help on using tickets.