SortableJS / Sortable

Reorderable drag-and-drop lists for modern browsers and touch devices. No jQuery or framework required.
https://sortablejs.github.io/Sortable/
MIT License
29.76k stars 3.7k forks source link

Fixes leaky savedInputChecked across multiple instances #2369

Open daftspunk opened 7 months ago

daftspunk commented 7 months ago

Steps to Reproduce Issue

1) Create two sortables on the same page: List A and List B

2) The options.handle must be specified for some reason

3) Add an event when a checkbox is unchecked inside List A

4) Set event to destroy and replace SortableJS on List B

Problem

All checkboxes on List A are rechecked when List B is rebound (via _nulling)

SortableJS-Bug

Expectation

The checkbox should remain unchecked

Proposed Fix

It seems to happen because savedInputChecked is a global instance. So List B's store will contain List A's checkboxes...

The proposed code ensures the checkboxes remain within the scope of the relevant instance.

Related

This may be a solution to #1052's continuation since people are still suggesting it's broken.

It could be why you can't reproduce it, since two SortableJS instances are needed to produce the collision/outcome.