Страницы: 1
привет всем
вот мой код:
<script language="javascript"> function hideLevel(id) { var thisLevel = document.getElementById(id); thisLevel.style.display = "none"; } function showLevel(id) { var thisLevel = document.getElementById(id); if ( thisLevel.style.display == "none") { thisLevel.style.display = "block"; } else { hideLevel(id); } } function hideAll() { hideLevel("layer1"); hideLevel("layer2"); hideLevel("layer3"); } </script>
скрипт показывает/прячет слои. когда я кликаю на ссылку - слои показываются, кликаю еще раз - убираются.
firefox не показывает этого корректтно.
т.е. - при клике появляется нужный слой , но буквально на милисекунду.
в чем может быть проблема?
я тут слегка поэкспериментировал, вроде бы firefox'у не нравится onLoad event..
Отредактировано Cold.Rain (19-04-2007 15:34:57)
Отсутствует
Из явных глюков скрипта могу только сказать, что thisLevel.style.display в первый раз не определён.
Isn't it ironic... don't you think? — Alanis Morissette
Отсутствует
как определить, в таком случае?
А зачем? Вам надо определить является ли элемент видимым, так?
Проще всего это делается проверкой offsetWidth.
А вообще, в вашем примере не показано, как собственно вызываются приведённые функции…
Isn't it ironic... don't you think? — Alanis Morissette
Отсутствует
А вообще, в вашем примере не показано, как собственно вызываются приведённые функции…
<script language=javascript type='text/javascript'> function hideDiv() { if (document.getElementById) { // DOM3 = IE5, NS6 document.getElementById('hideShow').style.visibility = 'hidden'; } else { if (document.layers) { // Netscape 4 document.hideShow.visibility = 'hidden'; } else { // IE 4 document.all.hideShow.style.visibility = 'hidden'; } } } function showDiv() { if (document.getElementById) { // DOM3 = IE5, NS6 document.getElementById('hideShow').style.visibility = 'visible'; } else { if (document.layers) { // Netscape 4 document.hideShow.visibility = 'visible'; } else { // IE 4 document.all.hideShow.style.visibility = 'visible'; } } } </script> <body > <div align="center"> <a href onClick="showDiv('hideShow');" style="cursor: hand"> <img src = "file://D:/webroot/site_pics/bo.jpg"></a> </div> <div id="hideShow"> <img src = "file://D:/webroot/site_pics/bo_big.jpg" onClick = "hideDiv('hideShow');"> </div> </body>
Отсутствует
вот мой код:
<html> <head> <script language=javascript type='text/javascript'> function hideDiv() { if (document.getElementById) { // DOM3 = IE5, NS6 document.getElementById('hideShow').style.visibility = 'hidden'; } else { if (document.layers) { // Netscape 4 document.hideShow.visibility = 'hidden'; } else { // IE 4 document.all.hideShow.style.visibility = 'hidden'; } } } function showDiv() { if (document.getElementById) { // DOM3 = IE5, NS6 document.getElementById('hideShow').style.visibility = 'visible'; } else { if (document.layers) { // Netscape 4 document.hideShow.visibility = 'visible'; } else { // IE 4 document.all.hideShow.style.visibility = 'visible'; } } } </script> <body onLoad = "javascript:hideDiv();"> <div> <a href onClick="showDiv('hideShow');" style="cursor: hand"> <img src = "file://D:/webroot/site_pics/bo.jpg"></a> </div> <div id="hideShow"> <img src = "file://D:/webroot/site_pics/bo_big.jpg" onClick = "hideDiv('hideShow');"> </div> </body> </html>
самое интересное, что когда вместо картинок текст - все работает. как только появляются картинки - ничего.
Отсутствует
Так может у вас просто картинки не загружаются?
Вы эту страничку с диска открываете?
В любом случае после file: должно быть три слеша, а не два.
PS. NN4 и IE4 не существуют. Забудьте о них, не пишите лишний код.
Isn't it ironic... don't you think? — Alanis Morissette
Отсутствует
Страницы: 1