Buonasera,
ho preso questo codice da qui:
http://javascript.html.it/articoli/l...on-un-click/2/
Vorrei sapere se č possibile che all'aprirsi di un DIV si chiuda quello aperto precedentemente.
Grazie in anticipo =)
Buonasera,
ho preso questo codice da qui:
http://javascript.html.it/articoli/l...on-un-click/2/
Vorrei sapere se č possibile che all'aprirsi di un DIV si chiuda quello aperto precedentemente.
Grazie in anticipo =)
Ecco il codice:
<script type="text/javascript" language="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>
<div id="testo"><a href="#" onclick="visualizza('immagine'); return false">
Clicca qui per visualizzare l'immagine scoop</a></div>
<div id="immagine" style="display:none">[img]immagine.jpg[/img]</div>
Vi servono maggiori info??
quanti div sono presenti nella pagina?
Per ora solo due DIV a comparsa. Ma in seguito arriverķ fino a 9. Perķ mi basta un codice anche per due soli div, poi cerco di adattarmi!
Tutti i div da mostrare e nascondere devono avere l'attributo class valorizzato con immagineClass(o uno a tua scelta).codice:function visualizza(id){ listDiv = document.getElementsByClassName("immagineClass"); for(i=0;i<listDiv.length;i++){ if(listDiv[i].style.display == 'block' && listDiv[i].id != id){ listDiv[i].style.display = 'none'; } } if(document.getElementById(id).style.display == 'none'){ document.getElementById(id).style.display = 'block'; }else{ document.getElementById(id).style.display = 'none'; } }
p.s. il metodo getElementsByClassName non č crossbrowser(se non ricordo male non č supportato da <IE8)
Prima di tutto grazie della risposta.
Non riesco a farlo funzionare:
codice:<script type="text/javascript" language="javascript"> function visualizza(id){ listDiv = document.getElementsByClassName("immagineClass"); for(i=0;i<listDiv.length;i++){ if(listDiv[i].style.display == 'block' && listDiv[i].id != id){ listDiv[i].style.display = 'none'; } } if(document.getElementById(id).style.display == 'none'){ document.getElementById(id).style.display = 'block'; }else{ document.getElementById(id).style.display = 'none'; } } </script> <div id="testo"><a href="#" onclick="visualizza('immagine'); return false"> Clicca qui per visualizzare l'immagine scoop</a></div> <div id="immagine" style="display:none">[img]img.jpg[/img]</div>
Se vuoi un consiglio: usa solo i css, senza javascript.
codice:<!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Esempio</title> <style type="text/css"> .espandibile { display: none; } .espandibile:target { display: block; } </style> </head> <body> <ul> [*]Apri div1 [*]Apri div2 [*]Apri div3 [*]Apri div4[/list] <div class="espandibile" id="esempio1"> Questo è il primo div</p> </div> <div class="espandibile" id="esempio2"> Questo è il secondo div</p> </div> <div class="espandibile" id="esempio3"> Questo è il terzo div</p> </div> <div class="espandibile" id="esempio4"> Questo è il quarto div</p> </div> </body> </html>![]()
Originariamente inviato da carlomarx
Se vuoi un consiglio: usa solo i css, senza javascript.
codice:<!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Esempio</title> <style type="text/css"> .espandibile { display: none; } .espandibile:target { display: block; } </style> </head> <body> <ul> [*]Apri div1 [*]Apri div2 [*]Apri div3 [*]Apri div4[/list] <div class="espandibile" id="esempio1"> Questo è il primo div</p> </div> <div class="espandibile" id="esempio2"> Questo è il secondo div</p> </div> <div class="espandibile" id="esempio3"> Questo è il terzo div</p> </div> <div class="espandibile" id="esempio4"> Questo è il quarto div</p> </div> </body> </html>![]()
Grazie! E' molto pių semplice, facile da usare e modificabile rapidamente.
Ho risolto.![]()