angularjs - 如何从焦点/模糊更改父元素的类?

标签 angularjs events focus parent blur

当它获得焦点时,我试图将一个类添加到输入的父级。我可以得到父级,但我似乎无法设置类名。这是我在这个 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/

相关文章:

java - Java 中的异步事件调度

c# - 禁用 WPF 窗口焦点

java - 检测 jpanel 焦点的变化

javascript - 类型错误 : Cannot read property 'parentNode' of null while using angular-datatables

javascript - Angular Directive(指令) : communicating values to controller with ampersand methods

javascript - angularjs http + script7002 : xmlhttprequest: network error 0x80070005, 访问被拒绝

c# - 将事件从 asp.net 用户控件公开到容器 Web 表单页面

javascript - 使用 Angular Promise 进行 Jasmine 测试无法使用 TypeScript 进行解析

objective-c - 循环直到变量改变

Flash & Flex SDK/AS3 - 如何保持键盘焦点?