Newsgroup: it.comp.lang.javascript
Titolo: visibilità DIV dentro a tabella con display:none

Ciao a tutti ho la necessità sul click sul radio Mostra, di
visualizzare il DIV che si trova nella tabella Nascosta. In questo caso
non viene cmq visualizzato.
Questo è la semplificazione di una funzionalità su una pagina
complicata, in pratica mi servirebbe che compaia sopra a tutto anche se
vi sembra strano.
Grazi e ciao
---------
<SCRIPT LANGUAGE="javascript">
function hide(){
   if(document.all)
      document.all.pippo.style.visibility="hidden";
   else
      if(document.layers)
         document.layers['pippo'].visibility="hide";
      else
         if(document.getElementById)
            document.getElementById('pippo').style.visibility="hidden";
   }
function show(){
   if(document.all)
      document.all.pippo.style.visibility="visible";
   else
      if(document.layers)
         document.layers['pippo'].visibility="show";
      else
	     if(document.getElementById)
document.getElementById('pippo').style.visibility="visible";
   }
</SCRIPT>
</HEAD>
<BODY>
<table><tr><td style="display:none;">
	Qui del testo...
	<DIV ID="pippo" STYLE="position:relative; visibility:visible;
height:50; width:200;">
	   <FORM >
		  <INPUT TYPE="text" NAME="T1" SIZE="20" value="154878">
	   </FORM>
	</DIV>
</td></tr></table>
<DIV ID="pluto" STYLE="position:absolute;top:200;lest:40;">
   <FORM>
     <INPUT TYPE="radio" VALUE="V1" CHECKED NAME="R1"
onClick="show()"><BR>
     <INPUT TYPE="radio" NAME="R1" VALUE="V2" onClick="hide()">
   </FORM>
</DIV>

Fin tanto che non assegni un display != da "none" alla tua cella
nascosta non vedrai mai
nulla.
Quindi ricavato il tuo div risali alla cella con previousSibling,
oppure assegni alla cella un id e tramite getElementById ottieni il
riferimento alla tua cella ed imposti il valore di display a "inline",
oppure "block"... dipende da cosa devi farci.
Ciao, Himgi

Ho scritto tutto nell'ìHTML.
In pratica l'errore che non riesco a fregare è quando si clicca
sull'immagine per far sparire la cella ARANCIO e ci si trova con il
mouse su un'altra immagine.
In questo momento scatta una funzione che dovrebbe essere bypassata
sino ad un vero e proprio onmouseover e non perchè ci si trovi sopra
dopo lo switch.
Grazie
Alen
-------
<html>
<head>
<title></title>
	<script language="JavaScript" type="text/JavaScript">
	<!--
	//********************************
	// Nascondi colonna di SX - Tutte pg
	//********************************
	function HideColonnaSX(id){
		//Quando è in apertura
		if(document.getElementById(id).style.display=='none'){
			document.getElementById(id).style.display='inline';
			document.getElementById('LeftHide').style.display='inline';
			document.getElementById('LeftShow').style.display='none';
			eraseCookie('ppkcookie');
			createCookie('ppkcookie','Aperto',365);
			//alert(readCookie('ppkcookie'));
		//Quando è in chiusura
		}else{
			document.getElementById(id).style.display='none';
			document.getElementById('LeftHide').style.display='none';
			document.getElementById('LeftShow').style.display='inline';
			eraseCookie('ppkcookie');
			createCookie('ppkcookie','Chiuso',365);
			//alert(readCookie('ppkcookie'));
		}
	}
	//********************************
	// Funzionmi per la creazione di un cookie - Tutte pg
	//********************************
	function createCookie(name,value,days){
		if(days){
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	}
	function readCookie(name){
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++)
		{
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return
c.substring(nameEQ.length,c.length);
		}
		return null;
	}
	function eraseCookie(name){
		createCookie(name,"",-1);
	}
	//********************************
	// Per visualizzare il DIV - Tutte pg
	//********************************
	function Hide(){
		if(document.all){
			document.all.Shortcuts.style.visibility="hidden";
		}else{
			if(document.layers){
				document.layers['Shortcuts'].visibility="hide";
			}else{
				if(document.getElementById){
					document.getElementById('Shortcuts').style.visibility="hidden";
				}
			}
		}
	}
	function Show(){
		if(document.all){
			document.all.Shortcuts.style.visibility="visible";
		}else{
			if(document.layers){
				document.layers['Shortcuts'].visibility="show";
			}else{
				if(document.getElementById){
					document.getElementById('Shortcuts').style.visibility="visible";
				}
			}
		}
	}
	//********************************
	// Timer per il DIV - Tutte pg
	//********************************
	var secs
	var timerID = null
	var timerRunning = false
	var delay = 1000
	function InitializeTimer(){
		// Set the length of the timer, in seconds
		secs = 1
		StopTheClock()
		StartTheTimer()
	}
	function StopTheClock(){
		if(timerRunning)
			clearTimeout(timerID)
		timerRunning = false
	}
	function StartTheTimer(){
		if (secs==0){
			StopTheClock()
			Hide()
		}else{
			//self.status = secs
			secs = secs - 1
			timerRunning = true
			timerID = self.setTimeout("StartTheTimer()", delay)
		}
	}
	-->
	</script>
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0"
marginheight="0">
  <p>Onmouse over compare. OnmouseOut dopo 1 secondo scompare. </p>
  <p>Se fai click sull'immagine compare il DIV arancio e sparisce
l'azzurro. </p>
  <p>Se quando visibile  (arancio) fai click per farlo scomparire
funziona, ma si vede (l'azzurro) perch&egrave; sei su
onmouseover...questo &egrave; l'errore.<br>
    Quando clicchi e ti ritrovi sopra non dovrebbe scattare la funzione
onmopuseOver, solo ad un ipotetico 2 ingresso sull'immagine. </p>
  <table width="100%" border="0" cellpadding="0" cellspacing="0"
id="CorpoTabella">
   <form name="Unico">
    <tr>
      	<td width="9" valign="top">
		  <table width="100%"  border="0" cellpadding="0" cellspacing="0">
			  <tr>
				<td height="22"></td>
			  </tr>
		  </table>
		  <img src="Imm/hide.gif" id="LeftHide" width="9" height="25"
style="cursor: pointer; cursor: hand;"
onClick="HideColonnaSX('LeftTD');Hide();" onMouseOver="Hide();"
border=1>
		  <img src="Imm/show.gif" id="LeftShow" width="9" height="25"
style="cursor: pointer; cursor: hand;"
onClick="HideColonnaSX('LeftTD');Hide();StopTheClock();"
onMouseOver="Show();"  border=1>
		  <div id="Shortcuts" style="position:absolute; visibility:hidden;
z-index:2; left: 9; background-color: #CCFFFF; layer-background-color:
#CCFFFF; border: 1px none #000000; width: 255px;"
onMouseOver="StopTheClock();" onMouseOut="InitializeTimer();">
		  	Se lo vedi e il mouse è sopra si vede sempre. Se vai in
onmouseout dopo 1 secondo sconmpare.
		  </div>
	  </td>
		  <td valign="top" bgcolor="#FFCC00" id="LeftTD">
		    <p>
		    <script language="JavaScript" type="text/JavaScript">
			var x = readCookie('ppkcookie')
			if(x=='Aperto'){
				document.getElementById('LeftTD').style.display='inline';
				document.getElementById('LeftShow').style.display='none';
			}else{
				document.getElementById('LeftTD').style.display='none';
				document.getElementById('LeftHide').style.display='none';
			}
		    </script>
		    Si vede
		  </p>
	      </td>
     </tr>
	</form>
</table>
</body>
</html>

 TP/BP/Delphi/jscr/&c, FAQ items, links.

Non ho capito cosa centra quel comando è per la creazione di cookie
CIAO