Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537

    Problema strano sulla gestione degli eventi

    Salve a tutti sto scrivendo uno script che mi crea il rollover su delle immagini, ma ho dei problemi sulla gestione degli eventi, infatti gli eventi si scatenato al caricamento della pagina e non sul mouseover.

    Codice Html
    codice:
    <div id="col_sin">  
    <h2 class="home" id="uno">Confetti sulmona</h2>
    
    
    Sulmona confetti è ricca di arte e cultura eredità di confetti millenni di storia, la città è al centro della Valle Peligna confetti sulmona, posizione strategica sia per l'accesso alle sulmona confetti località sciistiche e balneri, sia per la vicinanza con sulmona i Parchi Nazionali della Majella e d'Abruzzo.</p>
    [img]Layout/confetti-sulmona-1.jpg[/img]
    
    
    Sulmona è famosa in tutto il mondo per i suoi confetti e per il suo aglio rosso.</p>
    
    
    | Foto 1 | Foto 2 | Foto 3 | Foto 4 |</p>
    
    
    
    La storia di confetti sulmona come centro di riferimento delle civiltà italiche, confetti è testimoniata dal fascino del Tempio di Ercole Curino, dalla fonte confetti di sulmona d'Amore di ovidiana memoria, dall'acquedotto rimano e dai tanti altri monumenti che arricchiscono il suo centro storico.</p>
    </div>
    Codice javascript
    codice:
    // Prendo tutte le ancore dentro la colonna sinistra della home
    var a = document.getElementById("col_sin").getElementsByTagName("a");
    
    function rollover(obj)
    {
        var img = document.getElementById("col_sin").getElementsByTagName("img");
        img[0].src=obj.href;
    }
    
    if(typeof window.addEventListener != "undefined")
        {
          for (var i = 0; i < a.length; i++)
            {
              a[i].addEventListener("mouseover", rollover(a[i]), false); // Aggiungo l'evento mouseover al link corrente
            }
        }
    else  // Compatibilita' Explorer
        {
            for (var j = 0; j < a.length; j++)
            {
              a[j].attachEvent("onmouseover", rollover(a[j])); // Aggiungo l'evento mouseover al link corrente
            }
        }
    Non riesco a capire l'errore dov'è.

  2. #2
    ehm, no, non funziona così....

    addEventListener e attachEvent prendono in ingresso uno stringa ed una funzione, NON la chiamata di una funzione. devi fare

    codice:
    a[i].addEventListener("mouseover", rollover, false);
    ...
    a[j].attachEvent("onmouseover", rollover);
    e la funzione rollover non prende nessun argomento quando è chiamata.

    codice:
    function rollover()
    {
        var img = document.getElementById("col_sin").getElementsByTagName("img");
        img[0].src=this.href;
    }
    questo perché lo scope della funzione associata ad un evento di un elemento è l'elemento stesso.
    I DON'T Double Click!

  3. #3
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    Grazie tanto, non avevo capito questo concetto, infatti ora funziona perfettamente, quindi in rollover l'oggetto è quello su cui si scatena l'evento ? Giusto?

  4. #4
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    Cmq sul ba***rdo di Internet Explorer non funziona, perchè?
    Sarà forse per la parola riservata this ?

    E poi per non far seguire il link come faccio?

    Ho provato a mettere return false alla fine della funzione ma nulla di fatto

  5. #5

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.