¿Es posible almacenar un valor como id de EventListener? Necesito una identificación de esta lista cuando hago clic en el elemento.
Esto es lo que he intentado:
<ul class="list"> <li class="item-list" id="1"></li> <li class="item-list" id="2"></li> <li class="item-list" id="3"></li> </ul> <script type="text/javascript"> list.addEventListener("click", function (e) { let podlistIndex; if (e.target.classList.contains("item-list")) { podlistIndex= e.target.getAttribute("id"); } console.log(podlistIndex); }); </script>
Cuando se hace clic en el elemento, puedo obtener el valor como una identificación, pero el valor se pierde cuando hago clic en otro lugar. ¿Cómo puedo almacenar el valor?
Coloque la variable fuera del controlador de eventos
let podlistIndex; list.addEventListener("click", (e) => { if (e.target.classList.contains("item-list")) { podlistIndex = e.target.getAttribute("id"); } console.log(podlistIndex); });
Haga una matriz fuera de la función y llénela con cada clic que haga. De esta manera no sobrescribirá ninguna identificación.
<script> const ids = []; let list = document.querySelector('.list'); list.addEventListener("click", function (e) { let podlistIndex; if (e.target.classList.contains("item-list")) { podlistIndex= e.target.getAttribute("id"); ids.push(podlistIndex); } console.log(ids); }); </script>