Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    QuerySelecotrAll & click

    Ciao a tutti
    Ho un menu in questo modo:

    codice HTML:
    <a href="#" class="active">...</a>
    <a href="#" data-key="2">...</a>
    <a href="#" data-key="3">...</a>
    <a href="#" data-key="4">...</a>
    Ora se clicco su uno di questi link devo togliere l'attributo data-key sul link cliccato e rimette l'attributo sul link con classe active

    codice:
    const lnk = document.querySlectorAll("a[data-key]");
    lnk.foreach(item) => {
    item.addEventListener("click", (e) => {
    const act= document.querySelector("a.active");
    act.setAttribute("data-keu","...");
    act.clasList.remove("active");
    
    e.traget.removeAttribute("data-key");
    e.target.classList.add("active");
     });
    e.preventDefault();
    
    });
    ora se clicco la prima volta dsu un lin non con classe "active" fa tutto quello che deve fare pero poi se clicco sul link che precedentemente era "active" non fa nulla fin qui tutto normale, volevo chiedere come posso fare che addEventListener funzioni anche sul link che prima era "active" e non aveva l'attributo "data-key"?
    Ultima modifica di techno; 11-08-2021 a 18:07

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    ..aggiungi una classe che accomuna i diversi links
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    hai ragione che coglions a non averci pensato

  4. #4
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    ..usa quello Che ti pare
    Per gli Spartani e Sparta usa spartan Il mio github

  5. #5
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    codice:
      <div id="mylinks">
            <a href="#" data-pos="1" class="active">1</a>
            <a href="#" data-pos="2" data-key="2">2</a>
            <a href="#" data-pos="3" data-key="3">3</a>
            <a href="#" data-pos="4" data-key="4">4</a>
        </div>
    
    
        <script>
            const lnk = document.getElementById('mylinks');
    
            Array.from(lnk.children).forEach(item => {
                item.addEventListener("click", (e) => {
                    e.preventDefault();
                    const act = document.querySelector("a.active")
                    act.setAttribute("data-key", act.getAttribute('data-pos'))
                    act.classList.remove("active")
                    e.target.removeAttribute("data-key")
                    e.target.classList.add("active")
                })
            })
    
        </script>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.