gpt4 book ai didi

javascript - 向
  • 元素添加事件监听器
  • 转载 作者:行者123 更新时间:2023-11-29 19:24:42 24 4
    gpt4 key购买 nike

    我正在尝试使用 CSS + JavaScript 制作一个简单的下拉菜单。我得到了 CSS 部分。

    现在,我正在尝试将事件监听器添加到 li 元素,单击这些元素会下拉到子菜单中。

    <html>
    <head>
    <link href="stylesheet.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <div class="wrapper">
    <nav>
    <ul class="main-menu">
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Jobs</a></li>
    <li><a href="#">Contact</a></li>
    <li><a class="expandable" href="#">More &#x25BE;</a>
    <!-- <ul class="sub-menu">
    <li><a href="#">Tuts</a></li>
    <li><a href="#">Codes</a></li>
    <li><a href="#">Lectures</a></li>
    </ul> -->
    </li>
    </ul>
    </nav>
    </div>
    <script>
    function expand() {
    console.log(this);
    /* Do something to display the drop down menu */

    };
    var anchor_arr = document.getElementsByClassName('expandable');

    for(var i = 0; i<anchor_arr.length; i++) {
    anchor_arr[i].addEventListener('click', expand, false);
    }
    </script>
    </body>
    </html>

    在上面的代码中,在循环中,我为 liexpandable 元素上的点击事件添加事件监听器。但是点击我在控制台上没有输出。

    注意:仅使用 Javascript 的解决方案。

    最佳答案

    你可以这样做:

    function expand() {

    if (this.parentNode.getElementsByTagName('ul')[0].style.display == 'block') {
    return this.parentNode.getElementsByTagName('ul')[0].style.display = 'none'
    }
    this.parentNode.getElementsByTagName('ul')[0].style.display = 'block'
    };
    var anchor_arr = document.getElementsByClassName('expandable');
    for(var i = 0; i<anchor_arr.length; i++) {
    anchor_arr[i].addEventListener('click', expand, false);
    }
    <div class="wrapper">
    <nav>
    <ul class="main-menu">
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Jobs</a></li>
    <li><a href="#">Contact</a></li>
    <li><a class="expandable" href="#">More &#x25BE;</a>
    <ul class="sub-menu" style="display:none">
    <li><a href="#">Tuts</a></li>
    <li><a href="#">Codes</a></li>
    <li><a href="#">Lectures</a></li>
    </ul>
    </li>
    </ul>
    </nav>
    </div>

    请注意,我已将 style="display:none" 添加到子菜单 ul

    关于javascript - 向 <li> 元素添加事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31301920/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com