通过单击将类添加到元素,然后将其删除到其他元素

J.P

我工作在菜单上,我试图添加一个类时,我短声就可以了礼,但我需要删除类其他li元素,当我点击其中一个,我已经试过这个clicked.classList.remove("active");,但犯规工作时,我单击的每个元素都会获取该类,并且无法将其删除,我该怎么正确地做到这一点。

谢谢你的帮助

var menu_link = document.querySelectorAll(".menu_option");

for(i=0; i<menu_link.length; i++){
    var clicked = menu_link[i]
    clicked.addEventListener("click", function(){
        clicked.classList.remove("active");
        this.classList.add("active");
    });
}
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 100%;
}

body {
    font-family: Arial, Helvetica, sans-serif;
    color: #000000;
}

ul {
    list-style: none;
}

a {
    text-decoration: none;
    color: #000000;
}

.container {
    max-width: 900px;
    margin: auto;
}

/*============================================================================
HEADER
===============================================================================*/

header {
    background-color: #ffda00;
    padding-top: 10px;
    padding-bottom: 10px;
}

header nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

header nav ul li {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 5px;
}


header .logo {
    font-size: 2rem;
}


header nav ul li a {
    font-size: 1.1rem;
}

/* active menu */

.active {
    background-color: #007bff;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/styles.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lykmapipo/[email protected]/css/themify-icons.css">
    <title>My Store</title>
</head>
<body>
    <header>
        <div class="container">
            <nav>
                <span class="logo"><i class="ti-home"></i></span>
                <ul>
                    <li class="menu_option"><a href="#">Users</a></li>
                    <li class="menu_option"><a href="#">Orders</a></li>
                    <li class="menu_option"><a href="#">Products</a></li>
                    <li class="menu_option"><a href="#">Exit</a></li>
                </ul>
            </nav>
        </div>
    </header>
    <script src="js/script.js"></script>
</body>
</html>

zhugen

我修改了您的js代码。让我们在单击事件侦听器中进行另一个循环,以取消选中每个菜单选项的“活动”类。

var menu_link = document.querySelectorAll(".menu_option");

for(i=0; i<menu_link.length; i++){
    var clicked = menu_link[i]
    clicked.addEventListener("click", function(){
        // modified in here
        // clicked.classList.remove("active");
        menu_link = document.querySelectorAll(".menu_option");
        for (i = 0; i < menu_link.length; i++) {
            menu_link[i].classList.remove("active");
        }

        this.classList.add("active");
    });
}
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 100%;
}

body {
    font-family: Arial, Helvetica, sans-serif;
    color: #000000;
}

ul {
    list-style: none;
}

a {
    text-decoration: none;
    color: #000000;
}

.container {
    max-width: 900px;
    margin: auto;
}

/*============================================================================
HEADER
===============================================================================*/

header {
    background-color: #ffda00;
    padding-top: 10px;
    padding-bottom: 10px;
}

header nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

header nav ul li {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 5px;
}


header .logo {
    font-size: 2rem;
}


header nav ul li a {
    font-size: 1.1rem;
}

/* active menu */

.active {
    background-color: #007bff;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/styles.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lykmapipo/[email protected]/css/themify-icons.css">
    <title>My Store</title>
</head>
<body>
    <header>
        <div class="container">
            <nav>
                <span class="logo"><i class="ti-home"></i></span>
                <ul>
                    <li class="menu_option"><a href="#">Users</a></li>
                    <li class="menu_option"><a href="#">Orders</a></li>
                    <li class="menu_option"><a href="#">Products</a></li>
                    <li class="menu_option"><a href="#">Exit</a></li>
                </ul>
            </nav>
        </div>
    </header>
    <script src="js/script.js"></script>
</body>
</html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

简单的轮播滑块:将类删除到单击的元素,然后将其添加到下一个同级

来自分类Dev

jQuery:如果存在类,请将其删除,然后将其添加到新元素中

来自分类Dev

单击元素时添加一个类,单击其他位置时将其删除

来自分类Dev

将类添加到动态元素上的正文中,再次单击页面上的任意位置后将其删除

来自分类Dev

将元素添加到文档,然后使用Jquery将其删除

来自分类Dev

将类从页面上的其他对应元素添加到元素

来自分类Dev

如何在单击li元素时添加“活动”类并将其从其他元素中同时删除?

来自分类Dev

单击嵌套元素将类添加到同级

来自分类Dev

jQuery将类添加到此单击的元素

来自分类Dev

在其他元素悬停时将:hover状态添加到其他元素

来自分类Dev

通过循环将类添加到多个HTML元素

来自分类Dev

AngularJS指令,可在单击时添加类,但如果单击,则将其删除并将其添加到另一个元素中

来自分类Dev

将元素添加到具有与单击元素相同的匹配类的元素

来自分类Dev

AngularJS指令,在单击时添加类,但是如果单击,则将其删除并添加到另一个元素中

来自分类Dev

如何将类添加到单击的按钮并将类删除到以前单击的按钮

来自分类Dev

将类添加到父元素

来自分类Dev

将类添加到erb元素

来自分类Dev

将类添加到后续元素

来自分类Dev

无法将类添加到元素

来自分类Dev

将类添加到槽元素 (?)

来自分类Dev

在元素上单击时将CSS类添加到元素,出现一些错误?

来自分类Dev

使用片段将其他元素(不是ListView)添加到导航抽屉中

来自分类Dev

将类添加到对if语句正确但与其他元素具有相同类的特定项

来自分类Dev

将类添加到对if语句正确但与其他元素具有相同类的特定项

来自分类Dev

我可以使用jquery / js将类添加到悬停的其他元素中吗

来自分类Dev

将具有className的元素添加到具有idName的其他元素

来自分类Dev

将多个元素添加到列表中,然后单击cssSelector WebDriver Java

来自分类Dev

在Polymer 1.0中,我无法将其他元素添加到纸张无线电组,除非它们被单击时窃取了选择

来自分类Dev

从所有nodelist元素中删除样式,仅将其添加到单击的元素Vanilla JS中

Related 相关文章

  1. 1

    简单的轮播滑块:将类删除到单击的元素,然后将其添加到下一个同级

  2. 2

    jQuery:如果存在类,请将其删除,然后将其添加到新元素中

  3. 3

    单击元素时添加一个类,单击其他位置时将其删除

  4. 4

    将类添加到动态元素上的正文中,再次单击页面上的任意位置后将其删除

  5. 5

    将元素添加到文档,然后使用Jquery将其删除

  6. 6

    将类从页面上的其他对应元素添加到元素

  7. 7

    如何在单击li元素时添加“活动”类并将其从其他元素中同时删除?

  8. 8

    单击嵌套元素将类添加到同级

  9. 9

    jQuery将类添加到此单击的元素

  10. 10

    在其他元素悬停时将:hover状态添加到其他元素

  11. 11

    通过循环将类添加到多个HTML元素

  12. 12

    AngularJS指令,可在单击时添加类,但如果单击,则将其删除并将其添加到另一个元素中

  13. 13

    将元素添加到具有与单击元素相同的匹配类的元素

  14. 14

    AngularJS指令,在单击时添加类,但是如果单击,则将其删除并添加到另一个元素中

  15. 15

    如何将类添加到单击的按钮并将类删除到以前单击的按钮

  16. 16

    将类添加到父元素

  17. 17

    将类添加到erb元素

  18. 18

    将类添加到后续元素

  19. 19

    无法将类添加到元素

  20. 20

    将类添加到槽元素 (?)

  21. 21

    在元素上单击时将CSS类添加到元素,出现一些错误?

  22. 22

    使用片段将其他元素(不是ListView)添加到导航抽屉中

  23. 23

    将类添加到对if语句正确但与其他元素具有相同类的特定项

  24. 24

    将类添加到对if语句正确但与其他元素具有相同类的特定项

  25. 25

    我可以使用jquery / js将类添加到悬停的其他元素中吗

  26. 26

    将具有className的元素添加到具有idName的其他元素

  27. 27

    将多个元素添加到列表中,然后单击cssSelector WebDriver Java

  28. 28

    在Polymer 1.0中,我无法将其他元素添加到纸张无线电组,除非它们被单击时窃取了选择

  29. 29

    从所有nodelist元素中删除样式,仅将其添加到单击的元素Vanilla JS中

热门标签

归档