Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    285

    addEventListener in un ciclo for

    Ragazzi dopo ore a sbatterci la testa mi arrendo e scrivo qua!
    codice:
    var divPrincipale=document.getElementById("div_link_sup");
    	var linkPrincipali=divPrincipale.getElementsByTagName("li");//tutti i link (è un vettore)
    	var totLinkPrincipali=linkPrincipali.length;   //alert(totLinkPrincipali);
    	 for(i=0;i<totLinkPrincipali;i++){
    
    	   var li=linkPrincipali[i];
    	   var idLI=li.id;
    	    li.addEventListener("mouseover",function(){alert(idLI);},false); 
    
             }//chiusura for
    Gli id degli elementi li sono l_0, l_1, l_2, l_3 .... Non capisco però il motivo per cui passando il mouse su ogni elemento li mi daà sempre "l_3"... Lo trovo assurdo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Quando la funzione viene eseguita la variabile idLI è valorizzata con l'id dell'ultimo elemento del ciclo.

    codice:
    li.addEventListener("mouseover",function(){alert(this.id);},false);

  3. #3
    Codice PHP:
    function f() {
      var 
    = [];
      var 
    i;
      for(
    03i++) {
        
    a[i] = function(){
          return 
    i;
        }
      }
      return 
    a;


    ti ritornera sempre 3
    mentre questa does the work

    Codice PHP:
    function f() {
      var 
    = [];
      var 
    i;
      for(
    03i++) {
        
    a[i] = (function(x){
          return function(){
            return 
    x;
          }
        })(
    i);
      }
      return 
    a;


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    285
    Grazie ad entrambi.
    Perché se io in quel ciclo, prima dell'addeventlistener, inserisco
    codice:
    alert(idLI)
    mi fa 4 alert, uno per ogni id?

    Con il this però vedo che funziona... ... mi devo vedere per bene il significato di quel this

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.