Bug Tracker

Ticket #13019 (closed bug: fixed)

Opened 21 months ago

Last modified 21 months ago

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:
Blocking: Blocked by:

Description

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

comment:1 Changed 21 months ago by dmethvin

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

comment:2 Changed 21 months ago by dmethvin

ref #11338

comment:3 Changed 21 months ago by Dave Methvin

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

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

Changeset: f8f52cfcf4ff5d0e3e50a73b03aff0fd9c72105b

comment:4 Changed 21 months 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.