Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: mostra nascondi

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    10

    mostra nascondi

    Salve a tutti, se qualcuno riesce a capirmi e risolvere il mio problema lo faccio santo!
    Io ho questo script

    <script type="text/javascript">
    function visualizza(id){
    if (document.getElementById){
    if(document.getElementById(id).style.display == "none"){
    document.getElementById(id).style.display = "block";
    }else{
    document.getElementById(id).style.display = "none";
    }
    }
    }
    </script>

    nel <body> ho
    <span id="testo01">figura 1 ▿</span>
    <span class="img" id="immagine01" style="display:none">[img]images/i02a_panoramica.svg[/img]</span>

    Ora io ho bisogno di modificare la funzione in modo che onclick="visualizza('immagine01'); faccia parte della funzione stessa e quindi che non lo debba inserire all'interno del tag <a>

    Non so se sono riuscita a spiegarmi e se questo sia possibile.
    Grazie mille in anticipo

  2. #2
    Ciao.. intendi aggiungere un evento con js?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    10
    Esatto!
    Cioè l'evento onclick bla bla bla lo devo aggiungere alla funzione iniziale.
    Mi spiego meglio: io ho bisogno di un javascript che cliccando in una didascalia mi mostri l'immagine (e ricliccandoci me la nasconda).
    Il js che sono riuscita (con le mie ahimé basiche conoscenze) funziona però lo devo modificare includendo l'evento del "quando clicco mostra" nella funzione eliminando così l'attributo onclick="" dal tag <a>... Spero sia più chiaro...

  4. #4
    Ciao, ma di immagine ce n'è solo una, da mostrare e nascondere, o ce ne saranno di più?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    10
    Più di una...

  6. #6
    codice:
    <head>
    <script type="text/javascript">
    window.onload=function(){//quando gli span sono prenti nel documento
    	var arr_span=document.getElementsByTagName('span');//riunisco tutti gli span in un array
    	for(var i=0; i<arr_span.length; i++){//scorro l'array
    		var span=arr_span[i];//span in esame
    		if(span.id.substring(0,5)=='testo'){//se le prime cinque lettere dell'id sono uguali a 'testo'
    			document.getElementById(span.id).getElementsByTagName('a')[0].onclick=function(){//assegno la funzione al link dentro lo span
    				visualizza(this.parentNode.id);//non possiamo passare 01 o 02 qui, questo codice verrà eseguito solo al momento del click, quindi passo l'id dello span che contiene il link
    				//(sarebbe più comodo assegnare gli id direttamente ai link ed alle immagini, ma non conosco i tuoi vincoli...)
    			}
    		}
    	}
    }
    function visualizza(id){
    	id=id.replace('testo','immagine');//trasformo l'id dello span testo nell'id dello span immagine 
    	if (document.getElementById){//arcaico ;)
    		if(document.getElementById(id).style.display == "none"){
    			document.getElementById(id).style.display = "block";
    		}else{
    			document.getElementById(id).style.display = "none";
    		}
    	}
    }
    </script>
    </head>
    
    <body>
    <span id="testo01">figura 1 </span> 
    <span class="img" id="immagine01" style="display:none;">[img]images/i02a_panoramica.svg[/img]</span>
    
    <span id="testo02">figura 2 </span> 
    <span class="img" id="immagine02" style="display:none;">[img]images/i02a_panoramica.svg[/img]</span>
    </body>
    </html>

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    10
    Funziona!!
    L'unica cosa che non va è che se clicco il link mi apre una nuova pagina del browser, mentre il link è solo interno

    //(sarebbe più comodo assegnare gli id direttamente ai link ed alle immagini, ma non conosco i tuoi vincoli...)
    si può fare.

    L'unico vincolo che ho io è tenere perfettamente separati html, css e javascript, altrimenti il programma di validazione che devo passare mi rigetta tutto...

  8. #8
    Il Forum aggiunge un trattino tra java e script
    figura 1
    il link dovrebbe essere:
    figura 1

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    10
    Il programma di validazione mi dice questo...
    use of non-registered URI schema type in href: javascript:void(0) '-.-

    ma non ti preoccupare, non impazzire oltre!


    Grazie mille per l'aiuto

  10. #10
    si aspetta un http://....
    Ho scritto una versione dello script, usando jquery, è molto più migliore assai graficamente
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    <script type="text/javascript">
    $(function(){
    	$('span[id^="testo"]>a').click(function(){
    		visualizza(this.parentNode.id);
    		return false;
    	});
    })
    function visualizza(id){
    	id=id.replace('testo','immagine');//trasformo l'id dello span testo nell'id dello span immagine 
    	$('#'+id).slideToggle();
    }
    </script>
    </head>
    
    <body>
    <span id="testo01">figura 1 </span> 
    <span class="img" id="immagine01" style="display:none;">[img]1.jpg[/img]</span>
    
    
    <span id="testo02">figura 2 </span> 
    <span class="img" id="immagine02" style="display:none;">[img]2.jpg[/img]</span>
    </body>
    </html>
    ho modificato anche i link, per la validazione...

    Fammi sapere

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 © 2026 vBulletin Solutions, Inc. All rights reserved.