0

我错过了什么让它切换?打开第二个帐户似乎是合乎逻辑的,但它只切换一次。

function ShowHide()
        {
           var right_e = document.getElementById('id1'); 
           var left_e = document.getElementById('id2'); 
           if (top.visible_id == 'right') {
               right_e.style.display = 'none'; 
               left_e.style.display = 'block'; 
               top.visible_id = 'left';
           } else {
               right_e.style.display = 'block'; 
               left_e.style.display = 'none'; 
               top.visible_id = 'right';
           }    
        }


<a onclick ="javascript:ShowHide()" href="javascript:;" >click here</a>
4

4 回答 4

2

我不知道是什么top,但你不需要在你的例子中使用它。只需检查哪个 div 可见:

function ShowHide()
    {
       var right_e = document.getElementById('id1'); 
       var left_e = document.getElementById('id2'); 
       if (right_e.style.display === 'block') {
           right_e.style.display = 'none'; 
           left_e.style.display = 'block'; 
       } else {
           right_e.style.display = 'block'; 
           left_e.style.display = 'none'; 
       }    
    }
于 2013-03-18T03:48:55.893 回答
-1

我认为您为 if 和 else 创建了相同的条件:

top.visible_id = 'right';
于 2013-03-18T03:49:18.340 回答
-1
function ShowHide()
{

   if (document.getElementById('id1').style.display == 'block') {
       document.getElementById('id1').style.display = 'none'; 
       document.getElementById('id2').style.display = 'block'; 
   } else {
       document.getElementById('id1').style.display = 'block'; 
       document.getElementById('id2').style.display = 'none'; 
   }       
}
于 2013-03-18T03:53:58.280 回答
-1

如果您只想关闭每个元素的可见性,并且其中一个最初隐藏而另一个最初显示,请尝试使用 jQuery 的.toggle().

function ShowHide() {
  $('#id1,#id2').toggle();
}
于 2013-03-18T03:59:54.073 回答