javascript - Angular 2更改className更改类名称,然后将其删除

标签 javascript html angular

我正在尝试切换获得点击的组件的类名称。

  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'
        }
    }
<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 = ""

我感谢任何帮助或更好的方法来做到这一点。

最佳答案

您需要防止 anchor 标记的默认点击事件,这就是您需要的原因

return false;

在函数的末尾。

关于javascript - Angular 2更改className更改类名称,然后将其删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50766173/

相关文章:

angular - 在 Protractor 测试中访问 Angular 指令/组件实例

javascript - 访问对象数组的元素

javascript - jQuery : Change Dropdown value on change event

javascript - 在 Chrome 的 URL 栏中使用 Javascript 设置文本框的值只是将值写入屏幕

javascript - 使用dispatch()时没有调用Reducer

css - 网格区域中多个元素的对齐

android - 如何在 ionic 3 应用程序中使用 ion-img?

javascript - 页面加载时向用户发送消息?

php - 修剪多个Paragaraph php

Angular 2 搜索文本