![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
ciao a tutti, ho questo codice: div id="menu" ul li><a href="#">01</a></li li><a href="#">02</a></li li><a href="#">03</a></li /ul /div vorrei fare in modo che "onmouseover" venisse impostato lo sfondo immagine di ogni href, in base ad un array di immagini. |
|
P[i].onmouseover = P[i].style.backgroundImage.src = arrayImg[i]; |
|
ma non so dove e cosa sbaglio, nn funziona O_o |

#3
| |||
| |||
|
|
Un event handler, però, deve essere una funzione; quindi tu devi scrivere un'istruzione che dica "assegna all'event handler LA FUNZIONE che esegue l'assegnazione dello sfondo". In sunto, una cosa così: P[i].onmouseover = function() { P[i].style.backgroundImage = "url("+arrayImg[i]+")"; } |

|
Osserva, però, che in questo modo cambi lo sfondo quando si verifica l'evento mouseover... |
#4
| |||
| |||
|
|
P[i].onmouseover = function() { P[i].style.backgroundImage = "url("+arrayImg[i]+")"; } |
#5
| |||
| |||
|
|
On Wed, 28 Nov 2007 14:14:05 +0100, Nando wrote: Un event handler, però, deve essere una funzione; quindi tu devi scrivere un'istruzione che dica "assegna all'event handler LA FUNZIONE che esegue l'assegnazione dello sfondo". In sunto, una cosa così: P[i].onmouseover = function() { P[i].style.backgroundImage = "url("+arrayImg[i]+")"; } Aaaargh...! Sei consapevole di ciò che hai fatto qui? Rileggi, analizza e commenta; altrimenti grandi sciagure si abbatteranno su di te e la tua gente! (mi piacciono i delirii mistici) ![]() |
#6
| |||
| |||
|
|
P[i].onmouseover = function() { P[i].style.backgroundImage = "url("+arrayImg[i]+")"; } Aaaargh...! Sei consapevole di ciò che hai fatto qui? Rileggi, analizza e commenta; altrimenti grandi sciagure si abbatteranno su di te e la tua gente! (mi piacciono i delirii mistici) ![]() Sì sì, pardon, stavo scrivendo sovrappensiero (mai farlo, MAI). |
|
Non ho neanche idea di quello che succederebbe con una mostruosità del genere... ho mischiato il locale al globale, il tutto al niente, l'essere al nulla... un disastro! |
Dai,
#7
| |||
| |||
|
|
E' proprio necessario farlo in javascript? La medesima cosa può esser fatta con i soli css. |
|
P[i].onmouseover = P[i].style.backgroundImage.src = arrayImg[i]; Questa riga contiene un po' di errori... alcuni proprio sintattici, che dovrebbero esserti segnalati (se usi Firefox, guarda la console degli errori), altri "semantici". |
|
Allora... innanzitutto, backgroundImage è una proprietà "semplice" dell'oggetto style e non ha altre proprietà: dunque non esiste la proprietà src di backgroundImage. backgroundImage è una proprietà che accetta una stringa come valore, la quale stringa deve indicare l'url dell'immagine che vuoi impostare come sfondo nel formato "url (indirizzo)"; pertanto, per impostare un'immagine di background a un oggetto tramite javascript occorre scrivere una cosa del genere: oggetto.style.backgroundImage="url(indirizzoimmagi ne)" Veniamo al secondo errore. Con l'istruzione che hai scritto, lasciando stare il fatto di src appena discusso, ottieni il risultato di assegnare una stringa all'event handler onmouseover; considera anche che l'assegnazione funziona, per farla semplice, in maniera "transitiva", cioè con un'istruzione del tipo a = b = c assegni il valore di c sia a b che ad a. Un event handler, però, deve essere una funzione; quindi tu devi scrivere un'istruzione che dica "assegna all'event handler LA FUNZIONE che esegue l'assegnazione dello sfondo". In sunto, una cosa così: P[i].onmouseover = function() { P[i].style.backgroundImage = "url("+arrayImg[i]+")"; } Osserva, però, che in questo modo cambi lo sfondo quando si verifica l'evento mouseover... ma cosa succede quando l'utente muove il mouse e si sposta dall'elemento? ![]() |
#8
| |||
| |||
|
|
On Wed, 28 Nov 2007 14:31:21 +0100, Nando wrote: [cut] P[i].onmouseover = function() { P[i].style.backgroundImage = "url("+arrayImg[i]+")"; } Aaaargh...! Sei consapevole di ciò che hai fatto qui? Rileggi, analizza e commenta; altrimenti grandi sciagure si abbatteranno su di te e la tua gente! (mi piacciono i delirii mistici) ![]() Sì sì, pardon, stavo scrivendo sovrappensiero (mai farlo, MAI). Ho visto il tuo post successivo, quindi in parte ti sei salvato, ma.. Non ho neanche idea di quello che succederebbe con una mostruosità del genere... ho mischiato il locale al globale, il tutto al niente, l'essere al nulla... un disastro! .. non crederai mica di cavartela così a buon mercato, eh? Dai,analizza il codice che hai scritto e cerca di capire cos'è che hai fatto e come si comporterebbe tale codice (e perché). Alla prima questione ti rispondo io: hai fatto una closure. |

|
P.S. Noto che anche tu in quanto delirii mistici.. ![]() |
#9
| |||
| |||
|
|
Il Wed, 28 Nov 2007 14:14:05 +0100, Nando <aarrmmaaccoott (AT) gmail (DOT) com ha scritto: P[i].onmouseover = function() { P[i].style.backgroundImage = "url("+arrayImg[i]+")"; } Una cappellata, pardon. Occorre aggiustare un attimo il tiro, per questa assegnazione. |

), ti ritroveresti a navigare nel
#10
| |||
| |||
|
|
Bene, ora che ho sondato la reattività di ZER0 e ho verificato che è ancora in forma (era questo il mio intento, cosa credete?), ti direi: cambia approccio ![]() Con il tuo, definendo un array di immagini nella funzione hrefBg e utilizzando un'istruzione simile a quella che ti ho scritto (con qualche *piccolissimo* accorgimento ), ti ritroveresti a navigare nelmare delle closures e non mi pare questo il caso di farlo. Io torno a suggerirti i css ma se vuoi proprio usare js forse è meglio "agganciare" in qualche modo gli url delle immagini agli elementi anchor relativi. Ma davvero mi pare un delirio inutile. |

![]() |
| Thread Tools | |
| Display Modes | |
| |