javascript - 切换功能不工作 div 元素不出现

标签 javascript html css django

我正在 django 上做一个元素,我正在处理一个模板,我希望 div 元素在隐藏和显示之间切换,但它不起作用。 我从一个工作模板中获取了该功能,但由于某种原因它在 django 元素中不起作用。我只是想不出解决问题的方法。 这是模板:

<!DOCTYPE html>
<html lang="en">

  <head>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">


    <title>Admin Home Page</title>

    {% load staticfiles %}

    <!-- Bootstrap core CSS -->
    <link href="{% static 'Boards/Homepage/vendor/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <link href='https://fonts.googleapis.com/css?family=Sofia' rel='stylesheet'>
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="{% static 'Boards/Homepage/css/modern-business.css' %}" rel="stylesheet">
    <style>
      #ManageUsers {
        display: none;
      }
    </style>

    <script type="text/javascript">
      function ToggleHide(id) {
        var divelement = document.getElementById(id);

        if (divelement.style.display === 'none')
          divelement.style.display = 'block';
        else
          divelement.style.display = 'none';
      }
    </script>
  </head>

  <body>

    <!-- Navigation -->
    <nav class="navbar fixed-top navbar-expand-lg fixed-top" style="background-color: #0b0849;">
      <div class="container">
        <a class="navbar-brand" href="#" style="margin-left: -120px; font-family: 'Sofia';font-size: 22px;" ><i class="fa fa-flash" style="font-size:24px"></i> Drello Admin</a>
        <div class="search-container">
          <form action="/action_page.php">
            <input type="text" placeholder="Search.." name="search">
            <button type="submit"><i class="fa fa-search"></i></button>
          </form>
        </div>
        <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarResponsive">
          <ul class="navbar-nav ml-auto">
            <li>
              <a class="navbar-brand" href="index.html"><i class="fa fa-home" style="font-size:24px;"></i> Home</a>
            </li>
            <li class="nav-item dropdown" style="margin-right: -120px;">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownBlog" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> My Profile</a>

              <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownBlog">
                <a class="dropdown-item" href="full-width.html" style="color: #0b0849; margin-bottom: 10px;"><i class="fa fa-user-circle"></i> Profile</a>
                <a class="dropdown-item" href="full-width.html" style="color: #0b0849; margin-bottom: 10px;"><i class="fa fa-user-plus"></i> Add User</a>
                <a class="dropdown-item" href="sidebar.html" style="color: #0b0849; margin-bottom: 10px;"><i class="fa fa-bell"></i> Sidebar Page</a>
                <a class="dropdown-item" href="#" style="color: #0b0849; margin-bottom: 10px;"><i class="fa fa-power-off"></i> Logout</a>
              </div>
            </li>
          </ul>
        </div>
      </div>
    </nav>

    <br>
    <br>

    <!-- Page Content -->
    <div class="container">
      <!-- Page Heading -->
      <h2 class="my-4" style="margin-left: -50px; font-size: 16px; font-weight: 700; display: inline-block; color: #0b0849;"><i class="fa fa-address-book-o"></i><a href = "" onclick="ToggleHide('ManageUsers');">  Manage Users </a> </h2>
      <div class="row" style="margin-left: -45px;">
        <div class="col-lg-3 col-md-4 col-sm-6 portfolio-item">
        </div>
      </div>
      <div id="ManageUsers">
        <table style="width:50%">
          <tr>
            <th>User Name</th>
          </tr>
          <tr>
            <td>Zeinab Awada</td>
            <td><a href = "#" > <button>Edit User</button></a><td>
          </tr>
          <tr>
            <td>Mahdi Jaber </td>
            <td><a href = "#" > <button>Edit User</button></a><td>
          </tr>
        </table>
      </div>
      <div class="container">
        <!-- Page Heading -->
        <h2 class="my-4" style="margin-left: -40px; font-size: 16px; font-weight: 700; display: inline-block; color: #0b0849; padding-top: 20px;"><i class="fa fa-bars"></i> <a href = "" onclick="ToggleHide('ManageUsers');"> Manage Boards</a></h2>
      </div>
    </div>
    <!-- /.container -->

    <!-- Bootstrap core JavaScript -->

  </body>

</html>

最佳答案

如果您将 a 更改为例如span 它有效。那,或者您需要使用 preventDefault() 来防止 anchor 默认行为。

堆栈片段 - 更改为 span

<!DOCTYPE html>
<html lang="en">

  <head>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">


    <title>Admin Home Page</title>
    {% load staticfiles %}
    <!-- Bootstrap core CSS -->
    <link href="{% static 'Boards/Homepage/vendor/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <link href='https://fonts.googleapis.com/css?family=Sofia' rel='stylesheet'>
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <!-- Custom styles for this template -->
    <link href="{% static 'Boards/Homepage/css/modern-business.css' %}" rel="stylesheet">
     <style>
            #ManageUsers{
                           display :none;
                        }
    </style>
      <script type="text/javascript">
            function ToggleHide(id) {

                var divelement = document.getElementById(id);

                    if(divelement.style.display === 'none')
                        divelement.style.display = 'block';
                    else
                        divelement.style.display = 'none';
            }
    </script>
  </head>

  <body>

    <!-- Navigation -->
    <nav class="navbar fixed-top navbar-expand-lg fixed-top" style="background-color: #0b0849;">
      <div class="container">
        <a class="navbar-brand" href="#" style="margin-left: -120px; font-family: 'Sofia';font-size: 22px;" ><i class="fa fa-flash" style="font-size:24px"></i> Drello Admin</a>
        <div class="search-container">
    <form action="/action_page.php">
      <input type="text" placeholder="Search.." name="search">
      <button type="submit"><i class="fa fa-search"></i></button>
    </form>
  </div>
        <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarResponsive">
          <ul class="navbar-nav ml-auto">
            <li>
              <a class="navbar-brand" href="index.html"><i class="fa fa-home" style="font-size:24px;"></i> Home</a>
            </li>
            <li class="nav-item dropdown" style="margin-right: -120px;">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownBlog" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> My Profile</a>

              <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownBlog">
                <a class="dropdown-item" href="full-width.html" style="color: #0b0849; margin-bottom: 10px;"><i class="fa fa-user-circle"></i> Profile</a>
                <a class="dropdown-item" href="full-width.html" style="color: #0b0849; margin-bottom: 10px;"><i class="fa fa-user-plus"></i> Add User</a>
                <a class="dropdown-item" href="sidebar.html" style="color: #0b0849; margin-bottom: 10px;"><i class="fa fa-bell"></i> Sidebar Page</a>
                <a class="dropdown-item" href="#" style="color: #0b0849; margin-bottom: 10px;"><i class="fa fa-power-off"></i> Logout</a>
              </div>
            </li>
          </ul>
        </div>
      </div>
    </nav>

    <br>
    <br>
    <!-- Page Content -->
    <div class="container">
      <!-- Page Heading -->
        <h2 class="my-4" style="margin-left: -50px; font-size: 16px; font-weight: 700; display: inline-block; color: #0b0849;"><i class="fa fa-address-book-o"></i><span onclick="ToggleHide('ManageUsers');">  Manage Users </span> </h2>
      <div class="row" style="margin-left: -45px;">
        <div class="col-lg-3 col-md-4 col-sm-6 portfolio-item">
      </div>
      </div>
        <div id="ManageUsers">
            <table style="width:50%">
  <tr>
    <th>User Name</th>
  </tr>
  <tr>
    <td>Zeinab Awada</td>
    <td><a href = "#" > <button>Edit User</button></a><td>


  </tr>
  <tr>
    <td>Mahdi Jaber </td>
    <td><a href = "#" > <button>Edit User</button></a><td>


  </tr>
</table>
        </div>
        <div class="container">
      <!-- Page Heading -->
      <h2 class="my-4" style="margin-left: -40px; font-size: 16px; font-weight: 700; display: inline-block; color: #0b0849; padding-top: 20px;"><i class="fa fa-bars"></i> <span onclick="ToggleHide('ManageUsers');"> Manage Boards</span></h2>


      </div>
    </div>
    <!-- /.container -->

    <!-- Bootstrap core JavaScript -->


  </body>

</html>


堆栈片段 - 更改了 onlick 并添加了 preventDefault()

<!DOCTYPE html>
<html lang="en">

  <head>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">


    <title>Admin Home Page</title>
    {% load staticfiles %}
    <!-- Bootstrap core CSS -->
    <link href="{% static 'Boards/Homepage/vendor/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <link href='https://fonts.googleapis.com/css?family=Sofia' rel='stylesheet'>
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <!-- Custom styles for this template -->
    <link href="{% static 'Boards/Homepage/css/modern-business.css' %}" rel="stylesheet">
     <style>
            #ManageUsers{
                           display :none;
                        }
    </style>
      <script type="text/javascript">
            function ToggleHide(e) {
            
                e.preventDefault();

                var divelement = document.getElementById(this);

                    if(divelement.style.display === 'none')
                        divelement.style.display = 'block';
                    else
                        divelement.style.display = 'none';
            }
    </script>
  </head>

  <body>

    <!-- Navigation -->
    <nav class="navbar fixed-top navbar-expand-lg fixed-top" style="background-color: #0b0849;">
      <div class="container">
        <a class="navbar-brand" href="#" style="margin-left: -120px; font-family: 'Sofia';font-size: 22px;" ><i class="fa fa-flash" style="font-size:24px"></i> Drello Admin</a>
        <div class="search-container">
    <form action="/action_page.php">
      <input type="text" placeholder="Search.." name="search">
      <button type="submit"><i class="fa fa-search"></i></button>
    </form>
  </div>
        <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarResponsive">
          <ul class="navbar-nav ml-auto">
            <li>
              <a class="navbar-brand" href="index.html"><i class="fa fa-home" style="font-size:24px;"></i> Home</a>
            </li>
            <li class="nav-item dropdown" style="margin-right: -120px;">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownBlog" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> My Profile</a>

              <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownBlog">
                <a class="dropdown-item" href="full-width.html" style="color: #0b0849; margin-bottom: 10px;"><i class="fa fa-user-circle"></i> Profile</a>
                <a class="dropdown-item" href="full-width.html" style="color: #0b0849; margin-bottom: 10px;"><i class="fa fa-user-plus"></i> Add User</a>
                <a class="dropdown-item" href="sidebar.html" style="color: #0b0849; margin-bottom: 10px;"><i class="fa fa-bell"></i> Sidebar Page</a>
                <a class="dropdown-item" href="#" style="color: #0b0849; margin-bottom: 10px;"><i class="fa fa-power-off"></i> Logout</a>
              </div>
            </li>
          </ul>
        </div>
      </div>
    </nav>

    <br>
    <br>
    <!-- Page Content -->
    <div class="container">
      <!-- Page Heading -->
        <h2 class="my-4" style="margin-left: -50px; font-size: 16px; font-weight: 700; display: inline-block; color: #0b0849;"><i class="fa fa-address-book-o"></i><a href = "" onclick="ToggleHide.apply('ManageUsers',arguments);">  Manage Users </a> </h2>
      <div class="row" style="margin-left: -45px;">
        <div class="col-lg-3 col-md-4 col-sm-6 portfolio-item">
      </div>
      </div>
        <div id="ManageUsers">
            <table style="width:50%">
  <tr>
    <th>User Name</th>
  </tr>
  <tr>
    <td>Zeinab Awada</td>
    <td><a href = "#" > <button>Edit User</button></a><td>


  </tr>
  <tr>
    <td>Mahdi Jaber </td>
    <td><a href = "#" > <button>Edit User</button></a><td>


  </tr>
</table>
        </div>
        <div class="container">
      <!-- Page Heading -->
      <h2 class="my-4" style="margin-left: -40px; font-size: 16px; font-weight: 700; display: inline-block; color: #0b0849; padding-top: 20px;"><i class="fa fa-bars"></i> <a href = "" onclick="ToggleHide.apply('ManageUsers',arguments);"> Manage Boards</a></h2>


      </div>
    </div>
    <!-- /.container -->

    <!-- Bootstrap core JavaScript -->


  </body>

</html>


我还建议避免使用内联脚本,而是使用事件监听器,并执行类似这样的操作来附加 click 事件

document.querySelector('a css-selector').addEventListener('click', function(e) {

    // e holds the event and this holds the element that were clicked on

}); 

关于javascript - 切换功能不工作 div 元素不出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50193431/

相关文章:

javascript - 通过变量创建简单页面

jquery - 当使用 jQuery 动画远离光标时,停止 ":hover"元素保持它们的状态?

javascript - 如何从功能组件发送数据到redux store?

javascript - 动态更改 Controller 中的 watch

html - 输入文本时元素的位置移动

html - 在开发人员工具中测试响应能力时,网站 react 完美,但不是以实际手机屏幕为中心?

javascript - 使用 javascript 修改 CSS

css - CSS 中的动态高度动画

javascript - 如何获取范围内的 Facebook 地点列表

javascript - 可以用 for 循环和 InnerHTML 显示数组吗?