Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [innerHTML -> Js] js non crea js?

    salve a tutti,
    javascript è abilitato a creare codice html con dentro javascript?
    ovvero perchè se dico
    codice:
    ...
    div=div.innerHTML='';
    
    ...
    perchè con arg1 e arg2, controllate e necessarie prima di arrivare all'innerHTML,
    viene caricata e visualizzata correttamente l'immagine ma senza il contentuto dell' onclick?





  2. #2
    perché la definizione degli eventi DOM0 (cioè quella in cui metti le istruzioni da eseguire nel codice HTML) non viene applicata se gli elementi vengono inseriti con innerHTML.

    Devi usare la notazione DOM1 o DOM2 che applica gli eventi direttamente sull'elemento, ma stai attento che le variabili che passi alla funzione diventano globali.
    Cioè se fai:
    codice:
    for(i = 0; i < 10; i++){
    	var lnk = document.createElement('a');
    	div.appendChild(lnk);
    	lnk.href = "#";
    	lnk.onclick = function(){
    		alert(i);
    	}
    	lnk.appendChild(document.createTextNode('Link '+i));
    }
    Ogni link che aggiungi farà l'alert di 10 perchè la funzione così applica il valore della variabile al momento in cui la lanci (quindi sarà 10).

    Devi fare:

    codice:
    for(i = 0; i < 10; i++){
    	var lnk = document.createElement('a');
    	test_container.appendChild(lnk);
    	lnk.href = "#";
    	eval("lnk.onclick = function(){alert("+i+");}");
    	lnk.appendChild(document.createTextNode('Link '+i));
    }
    in questo modo viene applicato ESATTAMENTE il valore che tu passi. Nel tuo caso farei:

    codice:
    var img = document.createElement('img');
    div.innerHTML = "";
    div.appendChild(img);
    img.src='"http://... '+src+'.gif"';
    img.alt=""
    eval('img.onclick = function(){ funzione("'+arg1+'","'+arg2+'");}');
    I DON'T Double Click!

  3. #3
    comunque, ho notato che tra l'altro il tuo script non è sintatticamente corretto:

    codice:
    ...
    div=div.innerHTML='';
    ...
    nella parte sottolineata manca la '
    I DON'T Double Click!

  4. #4
    grazie mille per i suggerimenti e le dritte.
    la ' mancante è dovuta ad un errore di battitura
    Una forte determinazione ad esser felici vi aiuterà

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.