首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.addClass在jqLite / Angular.js上不起作用

.addClass在jqLite / Angular.js上不起作用
EN

Stack Overflow用户
提问于 2014-11-10 17:18:52
回答 3查看 16.8K关注 0票数 8

我最近一直在努力理解为什么.addClass函数不能在jqLite上工作

代码语言:javascript
复制
element.addClass('active')    

元素向我返回一个html元素数组,并反复测试以确保这一点。我可以隐藏()、显示()、添加或获取.css,甚至设置.attr,但addClass拒绝我。

addClass : element是svg块中的一个路径,这就是为什么似乎使edit函数变得无关紧要的原因,它仍在尝试修复它。

元素是一个jqLite对象

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2014-11-22 21:08:47

JqLite方法不能处理由普通javascript DOM选择器(如querySelectordocument.getElementById() )选择的元素。如果需要,首先使用javascript选择器选择它,然后将其包装在angular.element

代码语言:javascript
复制
var element = document.querySelector('a[target="_blank"]');
var angElement = angular.element(element);

或者简单地说

代码语言:javascript
复制
var myElement = angular.element( document.querySelector('a[target="_blank"]') );

然后,您可以使用JqLite方法:

第一个示例:

代码语言:javascript
复制
angElement.addClass('active');

第二个:

代码语言:javascript
复制
myElement.addClass('active');
票数 25
EN

Stack Overflow用户

发布于 2014-11-10 17:42:10

我认为这通常是个坏主意。在angular中添加类通常不是jquery风格的,您应该使用ng-class指令https://docs.angularjs.org/api/ng/directive/ngClass

该指令使用起来非常简单。

代码语言:javascript
复制
<div ng-class="{active: show}"></div>

$scope.showtrue时,此div将激活类

票数 3
EN

Stack Overflow用户

发布于 2014-11-10 17:47:15

您必须使用指令来添加和删除类

HTML:

代码语言:javascript
复制
    <div ng-controller="MyCtrl">
        <input type="button" active value='One' />
        <input type="button" active value='Two' />
        <input type="button" active value='Three' />
    </div>

JS:

代码语言:javascript
复制
    var app = angular.module('myApp',[]);

    app.directive('active', function() {
        return {
            link: function(scope, element, attrs) {
                element.bind('click', function() {
                    //Remove the active from all the child elements
                    element.parent().children().removeClass('active');

                    //Add active class to the clicked buttong
                    element.addClass('active');
                })
            },
        }
    });

    function MyCtrl($scope) {
    }

这是小提琴的link

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26840308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档