繁体   English   中英

单击将类添加到父元素

[英]Add class to parent element on click

我有以下代码:

<li class="parentElement">
 <ul>
   <li class="highlight"><a href="">Item 1</a></li>
   <li><a href="">Item 2</a></li>
   <li><a href="">Item 3</a></li>
 </ul>
</li>

此处的<ul>是导航菜单中的下拉菜单。 活动元素/ <li>具有类突出显示...当类突出显示在列表元素之一中时,我需要将活动类添加到parentElement。

我试图使用ng-class,但是没有成功。

UPDATE

ng-class =“ {'active':hasHighlight}”不适用于我的代码,因为ng-class中始终高亮显示,所以它将永久添加activ:

            <li class="parentElement">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown"></a>
                <ul class="dropdown-menu">
                    <li ng-class="{ highlight: isActive('/item1')}"><a href="${createLink(uri: '/#/item1')}"></a></li>
                    <li ng-class="{ highlight: isActive('/item2')}"><a href="${createLink(uri: '/#/item2')}"></a></li>
                    <li ng-class="{ highlight: isActive('/item3')}"><a href="${createLink(uri: '/#/item3')}"></a></li>
                </ul>
            </li>

您使用ng-class是正确的。

<li class="parentElement" ng-class="{'active': hasHighlight}">
 <ul>
   <li class="highlight"><a href="">Item 1</a></li>
   <li><a href="">Item 2</a></li>
   <li><a href="">Item 3</a></li>
 </ul>
</li>

在控制器中,每当您将类highlight添加到list元素时, $scope.hasHighlight更改$scope.hasHighlight true 取下后,将其更改为false

我发现了这样的事情:

ng-class="{ active: isAnyActive() }"

和控制器:

$scope.isAnyActive = function() {
        return ['/item1','/item2','item3'].indexOf($location.path()) > -1;
    };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM