From 7acc78b6d80bb06972a37f2ad546320b32c5ec3b Mon Sep 17 00:00:00 2001 From: David Cook Date: Thu, 20 Feb 2025 12:49:25 +1100 Subject: [PATCH] Revert "Delegate events to the parent element" This reverts commit e31c16df43e853e2a29b28ee0b3908684d2f6769. --- app/webpacker/controllers/checked_controller.js | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/app/webpacker/controllers/checked_controller.js b/app/webpacker/controllers/checked_controller.js index e29a4391e6..fc7ac72b18 100644 --- a/app/webpacker/controllers/checked_controller.js +++ b/app/webpacker/controllers/checked_controller.js @@ -7,7 +7,11 @@ export default class extends Controller { connect() { this.toggleCheckbox(); - this.element.addEventListener("change", this.#toggleChangeListener.bind(this), {passive: true}); + this.allTarget.addEventListener("change", this.toggleAll.bind(this)); + + this.checkboxTargets.forEach((checkbox) => { + checkbox.addEventListener("change", this.toggleCheckbox.bind(this)); + }); } toggleAll() { @@ -35,15 +39,6 @@ export default class extends Controller { // private - // Delegate events for targets (this ensures we catch events from newly-added elements after an ajax action) - #toggleChangeListener(event) { - if (event.target == this.allTarget) { - this.toggleAll(); - } else if (this.checkboxTargets.includes(event.target)) { - this.toggleCheckbox(); - } - } - #checkedCount() { return this.checkboxTargets.filter((checkbox) => checkbox.checked).length; }