当它获得焦点时,我试图将一个类添加到输入的父级。我可以得到父级,但我似乎无法设置类名。这是我在这个 plunkr 中尝试的:
http://plnkr.co/edit/eEfSeDb7i3uujjBZt21z?p=preview
<!DOCTYPE HTML>
<html id="ng-app" ng-app="app"> <!-- id="ng-app" IE<8 -->
<head>
<link rel="stylesheet" href="http://nervgh.github.io/css/animate.min.css" />
<style>
.highlight {
border: 2px solid red;
}
.blue-border
{
border:2px solid blue;
}
</style>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script>
<script>
angular.module( 'app', [])
.run( function( $rootScope, $timeout ) {
$rootScope.focusInput= function($event )
{
angular.element($event.target).parent().className += " " + 'highlight';
console.log( angular.element($event.target).parent() );
};
$rootScope.blurInput= function($event )
{
angular.element($event.target).parent().className.replace(' highlight', '');
};
});
</script>
</head>
<body>
<div class="blue-border">
<input ng-focus="focusInput($event)" ng-blur="blurInput($event)" value="Lactobacillus acidophilus"/>
</div>
</body>
</html>
注意它如何成功记录父级。但是,边框不会变红!有没有其他一些更“Angulary”的方式来做到这一点?
最佳答案
Angular 的 JQLite 为此提供了“addClass”和“removeClass”函数:
angular.element($event.target).parent().addClass('highlight');
请参阅此处的文档:https://docs.angularjs.org/api/ng/function/angular.element
关于angularjs - 如何从焦点/模糊更改父元素的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25128881/