onmouseover su div parenti indesiderato

longosamuel

Nuovo Utente
22 Feb 2016
5
0
0
Salve, sono nuovo, ho postato solo due volte quì:byebye:
Avrei un problema; premetto che non sapevo dove collocare la domanda, visto che riguarda un po' html, css ma anche javascript, comunque, ho un div principale che contiene, al suo interno, altri div che, disposti uno sotto l'altro, formano una specie di tendina, vi metto un esempio:
...
HTML:
<div id="primario" onmouseover="funzione1()" onmouseout="funzione2()">
      <div id="secondario-uno">
           </div>

      <div id="secondario-uno">
           </div>

      <div id="secondario-uno">
           </div>
   </div>
...

come vedete il div primario ha anche gli attributi "onmouseover" e "onmouseout"
Adesso, il problema è che, passando da un div secondario all'altro, rimanendo quindi dentro al div primario, il browser percepisce come se il puntatore del mouse sia stato spostato dal div primario (essendo spostato, in realtà solo da un div secondario a un altro senza uscire dal perimetro del div primario) e quando il puntatore da un div secondario passa ad un altro div secondario, il browser percepisce, oltre a quanto detto sopra, anche l'onmouseover sul div secondario di destinazione. In poche parole, spostando il puntatore del mouse da un div secondario ad un altro, pur rimanendo entro i confini del div primario, si verificano entrambi gli eventi. Esiste un modo per evitare questo problema e far sì che gli eventi onmouseover e onmouseout si verifichino SOLO quando esco dai perimetri del div primario?
Grazie in anticipo.
 
Ultima modifica:
Non sei molto chiaro in ciò che vuoi fare! Comunque se tu metti un'istruzione nel div contenitore fino a che ti tro dentro al quel div, che tu sia su un div figlio l'istruzione del div padre resta attiva, ci sono vari modi per aggirare il problema ma bisognerebbe avere più chiara la situazione e ancora meglio vedere la pagina.

Ricorda:
Che tre div con lo stesso id non possono esistere nella stessa pagina
 
Non sei molto chiaro in ciò che vuoi fare! Comunque se tu metti un'istruzione nel div contenitore fino a che ti tro dentro al quel div, che tu sia su un div figlio l'istruzione del div padre resta attiva, ci sono vari modi per aggirare il problema ma bisognerebbe avere più chiara la situazione e ancora meglio vedere la pagina.

Ricorda:
Che tre div con lo stesso id non possono esistere nella stessa pagina

Sì, scusa, so che non devono avere lo stesso id, è che ho fatto copia e incolla. Per quanto riguarda quello che voglio fare, gli attributi onmouseover e onmouseout sono stati inseriti solo nel tag del div primario, ma, purtroppo, se mi muovo tra i div secondari, anche senza uscire effettivamente dal div primario -visto che i secondari sono di fatto all'interno del primario- il browser percepisce comunque, ogni volta, entrambi gli eventi, l'onmouseout per primo, quando lascio il div secondario di partenza e l'onmouseover dopo, quando il puntatore arriva sul div secondario di destinazione. Mi scuso se non sono molto chiaro, appena riuscirò, cercherò di presentare il sito...
 
Allora non vedendo niente vado a naso! Prova in questo modo con la speranza che funzioni:
Codice:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento senza titolo</title>
<style type="text/css">
#primario, #secondario-uno, #secondario-due, #secondario-tre {
	z-index:999;
}
</style>
</head>

<body>
<div id="primario">
      <img onmouseover="funzione1()" onmouseout="funzione2()" style="z-index:0;" src="immagine.gif" width="100%" height="100%" alt="" >
      <div id="secondario-uno">
      </div>
      <div id="secondario-due">
      </div>
      <div id="secondario-tre">
           </div>
</div>
</body>
</html>
Ovvio che la gif deve essere una gif trasparente
 

Discussioni simili