Javascript скрыть / показать слои - PullRequest
0 голосов
/ 16 марта 2011

Я работаю с сокрытием и показом div в javascript, в основном я хочу показать один div, а затем, когда нажата кнопка, скрыть этот div и показать другой.Я не могу понять, какой javascript здесь есть у меня на данный момент, но второй слой не отображается, когда я нажимаю «Скрыть».

  <script language=javascript type='text/javascript'> 
    function hidediv() { 
    if (document.getElementById) { // DOM3 = IE5, NS6 
    document.getElementById('layer').style.visibility = 'hidden'; 
    document.getElementById('topbar').style.visibility = 'visisble';
    } 
    else { 
    if (document.layers) { // Netscape 4 
    document.layer.visibility = 'hidden'; 
    document.topbar.visibility = 'visible'; 

    } 
    else { // IE 4 
    document.all.layer.style.visibility = 'hidden'; 
    document.all.topbar.style.visibility = 'visible'; 
    } 
    } 
    }

    function showdiv() { 
    if (document.getElementById) { // DOM3 = IE5, NS6 
    document.getElementById('layer').style.visibility = 'visible'; 
 document.getElementById('topbar').style.visibility = 'hidden';
    } 
    else { 
    if (document.layers) { // Netscape 4 
    document.layer.visibility = 'visible'; 
document.topbar.visibility = 'hidden'; 
    } 
    else { // IE 4 
    document.all.layer.style.visibility = 'visible'; 
document.all.topbar.style.visibility = 'hidden';
    } 
    } 
    } 
    </script>

и css:

 #topbar {
    background-image: url(images/back.png);
background-repeat: repeat;
height: 30px;
margin-top: 20px;
visibility: hidden;
}

#show {
    float: right;
    padding-right: 40px;
    padding-top: 10px;
}

#hide {
    float: right;
    padding-right: 40px;
}

#layer {
background-image: url(images/back.png);
background-repeat: repeat;
padding-left: 20px;
padding-bottom:20px;
overflow: auto;
}

, используя стандартныеHTML ссылки, такие как:

<a href="javascript:hidediv()">Hide</a>

Любая помощь будет оценена, ура!

РЕДАКТИРОВАТЬ

хорошо, переключился на что-то совершенно новое, но, кажется, не скрывается после скрытия

<script type="text/javascript">

$ (function () {$ ('# showhide'). Click (function () {$ ('# layer'). Toggle (); $ ('# topbar'). Toggle ();});});

и

<a href="javascript:void(0);" id="showhide">Show/Hide</a>

и

<div id="layer"></div>

Ответы [ 2 ]

2 голосов
/ 16 марта 2011

Для этого вам не нужен jQuery.

Ваши функции могут выглядеть следующим образом:

function hideElement(elementId)
{
 document.getElementById(elementId).style.display = 'none';
}
function showElement(elementId)
{
 document.getElementById(elementId).style.display = 'block';
}

Затем при загрузке страницы или в CSS вы можете скрыть первый div.Когда щелчок происходит, вы можете использовать showElement, чтобы показать его.

0 голосов
/ 16 марта 2011

Это, вероятно, поможет вам: http://api.jquery.com/hide/ или http://api.jquery.com/toggle/.

EDIT:

Я надеюсь, что следующий пример поможет вам.

<!DOCTYPE html>
<html>
<head>
  <script language="javascript" type="text/javascript" src="jquery.js"></script>
  <script language="javascript" type="text/javascript">
  $(document).ready(function(){

    $("#button").click(function(){

         $("#a").toggle();
         $("#b").toggle();

     });

  });
  </script>
</head>
<body>
  <div id="a">
    I am a.
  </div>

  <div id="b" style="display: none">
  I am b.
  </div>

  <div id="button">
    <button>Show/Hide</button>
  </div>
</body>

</html>
...