Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Почему-то исчезание работает со второго нажатия. (https://javascript.ru/forum/css-html/31178-pochemu-ischezanie-rabotaet-so-vtorogo-nazhatiya.html)

IDCh 29.08.2012 10:53

Почему-то исчезание работает со второго нажатия.
 
Сделал простенький тест на исчезание.
Почему-то лишь со второго нажатия исчезает.
Я подозреваю, что срабатывает else и сначала присваивается visible. Но как так? Я же назначил в css visible: hidden в самом начале. теоретически все должно сразу же срабатывать.
Вот код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Тег IFRAME</title>
 </head>
 <body>

 <style>
.blockStyle {
	position: relative;
	visibility: visible;
}
.buttons {
	position: relative;
}
 </style>

<script type="text/javascript">
 	function changeVis (OBJ) {
 		if (OBJ.style.visibility == "visible")
 		{
 			OBJ.style.visibility = "hidden";
 		}else{
 			OBJ.style.visibility = "visible";
 		}
 	}
 </script>

 <div id="block" class="blockStyle">Number One</div>

 <input class="buttons" type="button" value="Button" onClick='changeVis(block)'>

 </body>
</html>


Я подозреваю, в <style> вообще ничего не является "первоначальным присваиванием". Скрипт даже style.left выдает "" а не 1px, если, к примеру, указать это.

Deff 29.08.2012 10:55

IDCh,
Оденьте весь код в тег
[HTML run][/HTML]

(cо скрипта BB-тег cнимите

Deff 29.08.2012 11:14

IDCh,
Нет прописанного свойства - в самом теге, поэтому 1-е нажатие - определяет его отсутствие
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Тег IFRAME</title>
 </head>
 <body>

 <style>
.blockStyle {
	position: relative;
	visibility: visible;
}
.buttons {
	position: relative;
}
 </style>

<script type="text/javascript"> 
	    function changeVis (id) { 
                var Th_Obj=document.getElementById(id);
//alert(id)
	        if (Th_Obj.style.visibility == "visible"){Th_Obj.style.visibility = "hidden"; return; }
	        else {Th_Obj.style.visibility = "visible";  return; }

	    } 
</script>


 <div id="block"   style="visibility:visible" class="blockStyle">Number One</div>

 <input class="buttons" type="button" value="Button" onClick="changeVis('block')">

 </body>
</html>

IDCh 29.08.2012 11:48

Спасибо! :)


Часовой пояс GMT +3, время: 12:24.