您好我面临的问题是让Li成为Active标签,我已经添加了悬停效果但是如何添加Active标签?我使用Angular的ng-show和ng-hide来改变li中的图标。这是我的代码
<li ng-mouseenter="show = true" ng-mouseleave="show = false" id="home">
<img src="images/home.png" ng-hide="show" class="whiteClass" />
<img src="images/home_h.png" ng-show="show" class="blackClass"/>
</li>
如何使用ng-click将其设为活动标签? 提前致谢
更新:
<li ng-mouseenter="liMouaeEnter()" ng-mouseleave="liMouseLeave()" id="issuesLi" ng-click="navbarclick($event , issueTab)">
<img src="images/issues.png" ng-class="{'active': !isActive, 'inactive': isActive}"/>
<img src="images/issues_h.png" ng-class="{'active': isActive, 'inactive': !isActive}"/>
</li>
这里是控制器上的jS文件
var navClickBool = false;
$scope.liMouaeEnter = function(){
$scope.isActive = false;
this.isActive = true;
navClickBool = false
}
$scope.navbarclick = function(event , template){
$scope.isActive = false;
this.isActive = true;
navClickBool = true
}
$scope.liMouseLeave = function(){
if(navClickBool){
return
}
this.isActive = false;
}
答案 0 :(得分:3)
如果您需要在元素上切换类,不仅要显示/隐藏它,您可以使用ng-class代替ng-hide
/ ng-show
。 ng-class
根据$scope
变量的真值自动添加/删除类。您可以在ng-click
上切换该真值(自动将onClick
事件绑定到DOM节点,就像on-mouseenter
绑定onMouseenter
一样。)
<div ng-init="isActive = false">
<div ng-click="isActive = !isActive " ng-class="{'active': isActive}">
<em>Foo</em>
</div>
</div>
您现在只需编写.active { }
CSS规则。
此外,您可以在ng-class
ng-class="{'active': isActive, 'inactive': !isActive}"
这将按预期工作(在两个类之间切换)。
请注意,我使用ng-init
将布尔值初始化为false
。您也可以直接在控制器中初始化它($scope.isActive = false;
)。