首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular 2更改className会更改类名,然后将其删除

Angular 2更改className会更改类名,然后将其删除
EN

Stack Overflow用户
提问于 2018-06-09 02:02:07
回答 1查看 60关注 0票数 0

我正在尝试切换被单击的组件的类名。

代码语言:javascript
复制
  toggleActive(event) {
        const parentClass = event.target.parentElement
        debugger
        if (parentClass.className === 'active') {
            if (parentClass.previousElementSibling === null) {
                parentClass.nextElementSibling.className = 'active'
            } else {
                parentClass.previousElementSibling.className = 'active'
            }
            parentClass.className = ''
        } else {
            if (parentClass.previousElementSibling === null) {
                parentClass.nextElementSibling.className = ''
            } else {
                parentClass.previousElementSibling.className = ''
            }
            parentClass.className = 'active'
        }
    }
代码语言:javascript
复制
<ul class="nav nav-tabs">
    <li (click)="toggleActive($event)">
        <a href="#/detail/bopis/default/search/advanceSearch">Pick Up In Store</a>
    </li>
    <li (click)="toggleActive($event)"><a href="#/advanceSearch?BOSFS">Ship From Store</a></li>
</ul>

当我第一次点击一个<li>时,它将正常切换。然后,除非我刷新页面,否则需要单击两次才能更改类。当我单步执行调试器时,一切似乎都正常,然后它就重置为className = ""

我很感谢任何人的帮助或更好的方法来做这件事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-09 02:28:38

您需要防止锚标签的默认点击事件,这就是为什么您需要

代码语言:javascript
复制
return false;

在函数的末尾。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50766173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档