Newsgroup: it.comp.lang.javascript
Titolo: Sapere se DIV è visibile.

Scusate la banalità della domanda
ma per un newbye come me (molto newbye)
non è facile!
Vorrei sapere come si fa a sapere se un DIV è visibile o no
Ho provato con
function test(el){
    if(document.getElementById(el).style.visibility=='visible'){
      st='vero';
    }else{
      st='falso';
    }
    window.alert(st);
  }
ma mi restituissce sempre falso
se cambio
if(document.getElementById(el).style.visibility=='visible')
in
if(document.getElementById(el).style.visibility='visible')
mi restituisce sempre vero e se hidden me lo setta a visible
come posso fare? Dove sbaglio?
Il problema è quello che vorrei mostrare o nascondere un DIV
al click del mouse sullo stesso elemento;
in pratica con il primo click appare il DIV
con il secondo scompare.
Sapete aiutarmi?
Grazie a tutti.

Per visualizzare puoi usare o visibility o hidden; nel primo caso lo spazio
che occupa quando è visibile viene mantenuto, nel secondo caso  no.
Quale dei 2 stai usando?
Ossia: nella pagina html cosa stai utilizzando?
Se non stai utilizzando nulla fai al contrario (verifica che non sia
nascosto):
if(document.getElementById(el).style.visibility=='hidden') (oppure 'none',
se usi display) ......

> Per visualizzare puoi usare o visibility o hidden; 
Immagino che volessi dire: "visibility o display"...

Ops....yes

 con il secondo scompare.
Il trucco sta nel definire a priori quale sara' l'attributo impostato dalla
classe.
Ovvero, se la classe avra' attributo "hidden", so che se la prima volta che
chiedero' lo stato dell'attributo visibility, questo sara' ad hidden, e
quindi impostero' il controllo sul fatto che *deve* essere diverso da
visible.
Dato che un esempio vale piu' di mille parole:
<style type="text/css">
	 #mylayer{visibility:hidden}
</style>
<div id="mylayer">hello</div>
<a href="#" onclick="goofy('mylayer');return false">click me</a>
<script type="text/javascript">
	function goofy(szID){
		var pObj=document.getElementById(szID);
		if (!pObj) return false;
		if (pObj.style.visibility!="visible")
			pObj.style.visibility="visible";
		else
			pObj.style.visibility="hidden";
	}		
</script>
Insomma, parto da un assunto: Che se l'attributo e' diverso da visible,
allora deve settarlo a visible. Quindi, questa condizione si verifichera'
SIA la prima volta che eseguo la funzione (in quanto l'attributo sara' una
stringa vuota, ergo diversa da "visible") SIA le volte successive (quando
invece sara' uguale a "hidden", nel caso sia nascosta).
Va da se' che se invece per "default" la classe ha attributo
"visibility:visible" devi invertire il tipo di condizione (!="hidden").
Spero di esser stato chiaro, anche se non ne sono del tutto sicuro. ^_^"
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"Questa e' una lezione difficile, ma importante: Cio' che e' stato, e cio'
che sara', non cambia cio' che e'.
Sta a te decidere poi come prendere questa cosa,se logorarsi per un passato
che non puoi cambiare, invece di prendere tutto il bene che il presente ti
offre." ()

 Ossia: nella pagina html cosa stai utilizzando?
Uso visibility impostato nello style

 ha scritto nel messaggio
news:vaqo7gxb3qsy$.dlg@ID-171124.news.individual.net...


 ... e ti farň sapere
Piu' che altro spero che gli esempi siano chiarificatori :)


 ha scritto nel messaggio
news:1tgx2l9ieandy$.dlg@ID-171124.news.individual.net...


 if (!pObj) return false;
Giusto per scrupolo.
In pratica se la funzione non riesce a trovare un riferimento ad un
elemento valido, restituisce false senza continuare l'esecuzione del suo
codice.


 codice.
un'ultima cosa
sapresti consigliarmi del materiale (siti web, libri) sul js
e che facciano anche riferimento a situazioni come questa?

 e che facciano anche riferimento a situazioni come questa?
Innanzitutto, le reference Javascript e JScript:
http://developer.netscape.com/docs/manuals/javascript.html
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/h
tml/js56jsorijscript.asp
Poi il caro e vecchio Thomas Brattli:
http://www.dhtmlcentral.com
e ovviamente ricorda che "google e' tuo amico" (soprattutto google gruppi,
in casi come questi).
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)