Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Javascript - addEventListener
Forum - Javascript - addEventListener

Avatar
Erreg (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/12/2012

Segnala al moderatore
Postato alle 21:24
Martedė, 11/11/2014
ho preparato un menų con pių voci e ogni voce un sottomenų ,i vari sottomenų sono nascosti finchč li mostro passando con il mouse  sopra la voce del menų madre  , di seguito posto il codice
Codice sorgente - presumibilmente Javascript

  1. <!DOCTYPE html>
  2.         <head>
  3.                 <link type="text/css" href="menuStyle.css"  rel="stylesheet"/>
  4.                 <script type="text/javascript"  src="menuScript.js"></script>
  5.                
  6.         </head>
  7.  
  8.         <body >        
  9.                         <ul>
  10.                                 <li class="livello1"id="a1" ><a href="#">uno</a>                                       
  11.                                         <ul id="ul21">
  12.                                                 <li class="livello2"><a href="#">uno_uno</a></li>
  13.                                                 <li class="livello2"><a href="#">uno_due</a></li>
  14.                                                 <li class="livello2"><a href="#">uno_tre</a></li>
  15.                                         </ul>
  16.                                 </li>
  17.                                 <li class="livello1"id="a2"><a  href="#">due</a>                                       
  18.                                         <ul id="ul22">
  19.                                                 <li class="livello2"><a href="#">due_uno</a></li>
  20.                                                 <li class="livello2"><a href="#">due_due</a></li>
  21.                                                 <li class="livello2"><a href="#">due_tre</a></li>
  22.                                         </ul>
  23.  
  24.                         </ul>
  25.         </body>
  26. </html>


di seguito i due file CSS e JS
Codice sorgente - presumibilmente Plain Text

  1. .livello1{
  2.         float:left;
  3.         list-style-type:none ;
  4.         text-align:center;
  5.         height:30px;
  6.         line-height:30px;
  7.         border-bottom: 5px solid red ;
  8.         color: black;
  9.         width:200px;
  10.         background-color: black;
  11.         border-radius: 18px;
  12.         margin-left: 100px;    
  13. }
  14. #ul21,#ul22 {
  15.         text-align: center;
  16.         padding-left: 0px;
  17.         margin-top: 5px;
  18. }
  19. a{
  20.         color:white;
  21.         text-decoration: none; 
  22. }
  23. .livello2{     
  24.         list-style-type:none ;
  25.         text-align:center;
  26.         width:200px;
  27.         height:30px;
  28.         line-height:30px;      
  29.         background-color: black;
  30.         color: black;
  31.         border-bottom: 5px solid red ;
  32.         border-radius: 18px;
  33. }



Codice sorgente - presumibilmente Javascript

  1. function vedoNonVedo()
  2. {              
  3.         if(variabile.style.visibility==="visible")
  4.         {
  5.         variabile.style.visibility="hidden";
  6.         }
  7.         else
  8.         {      
  9.         variabile.style.visibility="visible";  
  10.         }
  11. }
  12.  
  13. window.addEventListener('load',function(){
  14.         ul21.style.visibility="hidden";
  15.         ul22.style.visibility="hidden";
  16.         document.getElementById('a1').addEventListener('mouseover',vedoNonVedo);
  17.         document.getElementById('a1').addEventListener('mouseout',vedoNonVedo);
  18.         document.getElementById('a2').addEventListener('mouseover',vedoNonVedo);
  19.         document.getElementById('a2').addEventListener('mouseout',vedoNonVedo);
  20.         });


la mia domanda č questa : quando intercetto l'evento mouseover o mouseout come faccio a passare alla funzione "vedoNonVedo()  " il sottomenų su cui agire ( mostrare /nascondere ) da inserire al posto di " variabile "  ? , perche finchč sono 2 menu al limite mi basta scrivere due funzioni uguali che fanno riferimento a due ul diverse , ma se ci sono molti sottomenų la cosa diventa poco logica

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 2:08
Mercoledė, 12/11/2014
Mm, per semplificare le cose ti suggerire di guardare le pseudo-classi CSS :hover e le relazioni tra classi.

Codice sorgente - presumibilmente Plain Text

  1. .livello1 .livello2{
  2.   display: none;
  3. }
  4. .livello1:hover .livello2{
  5.   display: block;
  6. }



Il mio blog: https://piero.dev
PM Quote
Avatar
Erreg (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/12/2012

Segnala al moderatore
Postato alle 15:43
Mercoledė, 12/11/2014
Testo quotato

Postato originariamente da pierotofy:

Mm, per semplificare le cose ti suggerire di guardare le pseudo-classi CSS :hover e le relazioni tra classi.

Codice sorgente - presumibilmente Plain Text

  1. .livello1 .livello2{
  2.   display: none;
  3. }
  4. .livello1:hover .livello2{
  5.   display: block;
  6. }





nohhh !!!  mi hai demoralizzato  , con 4 righe di codice funziona tutto alla grande , perō la mia domanda rimane , se voglio passare alla funzione un qualcosa che sia un tag o altro , posso farlo ? se si come ?
nel chiamare una funzione svincolata da addEventListener basta passargli i dati fra parentesi  , ma in questo caso ?
ciao e naturalmente grazie .

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 15:59
Mercoledė, 12/11/2014
Prova con:

Codice sorgente - presumibilmente Javascript

  1. function vedoNonVedo(event){
  2.    var tag = event.currentTarget;
  3. }


Ultima modifica effettuata da pierotofy il 12/11/2014 alle 15:59


Il mio blog: https://piero.dev
PM Quote
Avatar
Erreg (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/12/2012

Segnala al moderatore
Postato alle 16:59
Giovedė, 13/11/2014
Testo quotato

Postato originariamente da pierotofy:

Prova con:

Codice sorgente - presumibilmente Javascript

  1. function vedoNonVedo(event){
  2.    var tag = event.currentTarget;
  3. }




ho dato un'okkiata al sito linkato , event si porta dietro un mondo , per me in questo momento č troppo , mi accontento delle pseudo classi css anche se mi č sembrato di capire che hover che č quella che al momento mi interessa di pių  possa applicare modifiche allo stato soltanto dell'elemento su cui si invoca e ai suoi elementi ( se ci sono ) figli . sbaglio ?

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 17:49
Giovedė, 13/11/2014
Si.


Il mio blog: https://piero.dev
PM Quote
Avatar
Erreg (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/12/2012

Segnala al moderatore
Postato alle 21:08
Venerdė, 14/11/2014
Testo quotato

Postato originariamente da pierotofy:

Si.


hahaha !!!
lo sospettavo , comunque sui vari forum o pagine con esempi e o guide si parla solo dell'elemento su cui si invoca o qualche elemento compreso nell'elemento stesso , cercherō pių a fondo .

PM Quote