Как переключить (скрыть/показать) таблицу onClick тега <a>в java script - программирование
Подтвердить что ты не робот

Как переключить (скрыть/показать) таблицу onClick тега <a>в java script

Я хочу показать и скрыть (переключить) событие <table> onClick <a>. это мой тег <a>

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

вот моя функция java script toggleTable(hide)

   <script>
    function toggleTable(hide)
    {
    if (hide) {
       document.getElementById("loginTable").style.display="table";
       document.getElementById("loginLink").onclick = toggleTable(false);

    } else {
       document.getElementById("loginTable").style.display="none";
       document.getElementById("loginLink").onclick = toggleTable(true);
    }
   }
   </script>

и вот мой тег <table>

<table id="loginTable" border="1" align="center" style="display:none">

В первый раз, когда я нажимаю <a> link, он показывает мою таблицу, но не прячется назад, когда я нажимаю ее в следующий раз. что я делаю неправильно.

4b9b3361

Ответ 1

Вы пытаетесь изменить поведение 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";
}

Ответ 2

Простое использование jquery

<script>
$(document).ready(function() {
    $('#loginLink').click(function() {
    $('#loginTable').toggle('slow');
    });
})
</script>

Ответ 3

Вам нужно изменить свою функцию как:

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>

Ответ 4

внутри вашей функции toggleTable, когда вы делаете эту строку

document.getElementById("loginLink").onclick = toggleTable(....

вы на самом деле вызываете функцию снова. поэтому toggleTable снова вызывается, и снова и снова вы попадаете в бесконечный рекурсивный вызов.

сделать это простым.

function toggleTable()
{
     var elem=document.getElementById("loginTable");
     var hide = elem.style.display =="none";
     if (hide) {
         elem.style.display="table";
    } 
    else {
       elem.style.display="none";
    }
}

см. это fiddle

Ответ 5

Ваш якорный тег должен быть:

  <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";

}

Ответ 6

Вы всегда передаете true toggleMethod, поэтому он всегда будет "показывать" таблицу. Я бы создал глобальную переменную, которую вы можете перевернуть внутри метода переключения.

В качестве альтернативы вы можете проверить состояние видимости таблицы вместо явной переменной

Ответ 7

Try

<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>

Ответ 8

visibility свойство делает элемент видимым или невидимым.

function showTable(){
    document.getElementById('table').style.visibility = "visible";
}
function hideTable(){
    document.getElementById('table').style.visibility = "hidden";
}