15
4

8 回答 8

21

您正在尝试更改onclick同一函数调用内部的行为。试试这样:

锚标记

<a id="loginLink" onclick="toggleTable();" href="#">Login</a>

JavaScript

function toggleTable() {
    var lTable = document.getElementById("loginTable");
    lTable.style.display = (lTable.style.display == "table") ? "none" : "table";
}
于 2013-03-29T06:38:05.337 回答
7

使用jquery简单

<script>
$(document).ready(function() {
    $('#loginLink').click(function() {
    $('#loginTable').toggle('slow');
    });
})
</script>
于 2013-03-29T06:41:03.273 回答
4

您需要将您的功能修改为:

function toggleTable()
{
   if (document.getElementById("loginTable").style.display == "table" ) {
       document.getElementById("loginTable").style.display="none";

   } else {
      document.getElementById("loginTable").style.display="table";

}

目前它正在根据boolean参数进行检查,您不必将参数与您的函数一起传递。

您需要将锚标记修改为:

<a id="loginLink" onclick="toggleTable();" href="#">Login</a>
于 2013-03-29T06:37:55.123 回答
2
于 2013-03-29T06:44:04.863 回答
1

您的锚标记应为:

  <a id="loginLink" onclick="showHideTable();" href="#">Login</a>

你的javascript函数:

function showHideTable()
{
   if (document.getElementById("loginTable").style.display == "none" ) {
       document.getElementById("loginTable").style.display="";

   } else {
      document.getElementById("loginTable").style.display="none";

}
于 2013-03-29T10:22:40.650 回答
0

您始终将 true 传递给 toggleMethod,因此它将始终“显示”表格。我将创建一个全局变量,您可以改为在切换方法中翻转它。

或者,您可以检查表的可见性状态而不是显式变量

于 2013-03-29T06:38:02.977 回答
0

尝试

<script>
  function toggleTable()
    {

    var status = document.getElementById("loginTable").style.display;

    if (status == 'block') {
      document.getElementById("loginTable").style.display="none";
    } else {
      document.getElementById("loginTable").style.display="block";
    }
  }
</script>
于 2013-03-29T06:42:51.657 回答
0

visibility属性使元素可见或不可见。

function showTable(){
    document.getElementById('table').style.visibility = "visible";
}
function hideTable(){
    document.getElementById('table').style.visibility = "hidden";
}
于 2017-09-19T05:14:13.947 回答