detail.addEventListener("toggle", function(ev) { let thisEl = this; this.querySelector("summary").setAttribute("aria-expanded", this.open ? "true" : "false"); if (this.open) { var siblings = this.parentElement.querySelectorAll("details"); siblings.forEach( function(sibling) { sibling.open = sibling === thisEl; }); } });
Um thisEl zu vermeiden, könnte man ev.target verwenden
Oder einfach detail
. Wenn der Event-Handler in einem anderen Scope läge, dann wäre ev.target
auf jeden Fall this
vorzuziehen. Niemand weiß, was this
ist.