当前位置: 首页 > 面试题库 >

用ng切换类并单击几个元素

吴飞语
2023-03-14
问题内容

如何使用ng-click分别在几个元素上切换类?

在这个问题中,点击切换类是这样完成的:

CSS:

.red {
    color: red;
}

JS:

$scope.toggle = false;

HTML:

<button id="btn" ng-click="toggle = !toggle" ng-class="{'red' : toggle}">Change Class</button>

但是,如果我有几个按钮,每个按钮都应通过ng-click切换自己的类,该怎么办?

如果以这种方式设置它:

HTML:

<button id="btn" ng-click="toggle = !toggle" ng-class="{'red' : toggle}">Change Class</button>
<button id="btn2" ng-click="toggle = !toggle" ng-class="{'red' : toggle}">Change Class</button>

如果我按下两个按钮,则两个按钮都将切换。

我知道一种解决方法是为每个按钮定义一个自己的ng-click事件(对于button1,例如f.ex
toggle1,对于button2,toggle2)-但这是最好的方法吗?


问题答案:

我做了简单的测试指令:

module.directive('toggleClass', function() {
    return {
        restrict: 'A',
        link: function(scope, element, attrs) {
            element.bind('click', function() {
                element.toggleClass(attrs.toggleClass);
            });
        }
    };
});

这样您就可以制作所需的任何元素切换类

<button id="btn" toggle-class="active">Change Class</button>
<div toggle-class="whatever"></div>


 类似资料:
  • 问题内容: 如何在vue.js中切换类? 我有以下几点: 当我单击时,我想按以下方式申请课程: 这需要切换,即每次单击它都需要添加/删除类。 问题答案: 您可以让活动类依赖于布尔数据值:

  • 我有一个待办事项列表,它是通过jsonplace生成的,点击按钮用虚拟内容填充div。 我试图实现的是,当我点击单个div(任务)时,它应该被删除/隐藏。 迄今 JS “removeTask”事件处理程序为所有生成的div(任务)而不是单击的div切换类。 如何在单击的div上添加/删除类?

  • 问题内容: 我正在尝试使用切换元素的类 isAutoScroll(): 基本上,如果为true,我希望ng-class是,如果为false,我希望它为 我现在无法使用,并且在控制台中产生此错误 如何正确执行此操作? 编辑 解决方案1 ​​:(已过时) 编辑2 解决方案2: 我想更新解决方案,因为Stewie提供的应该是使用的一种。对于三元运算符,这是最标准的(对我而言,最容易阅读)。解决方案是 转

  • 我需要做一个网站,我可以添加一些东西到购物车。我不需要存储任何数据,所以只需要将一个类更改为'Added Incart'就足够了。这是我目前所拥有的,但它还不起作用。我知道我得到的所有类名都会回到一个数组中。我只是不知道如何改变他们,如果按钮被点击。我用addEventListener和toggle做了很多尝试,但我刚刚开始编程,还不是所有的事情都对我来说都很清楚。我不打算使用Jquery,只使用

  • 我已经创建了一组问题和答案,每个问题旁边是一个img,每当有人点击一个问题时,我会尝试切换该图像的src。到目前为止,因为问题存储在nodelist中,我设法让图像切换,但它切换了所有的图像,我只想让我点击的问题切换存储在里面的图像。 null null

  • 问题内容: 任何人都可以为该JSFiddle提供正确的方法: JsFiddle链接 我正在尝试通过.class&#ID更改元素的类。 提前致谢 感谢tymeJV,新的JSFiddle: 解 问题答案: 正确的方法是根据切换变量使用,请考虑: CSS: JS: HTML: 通过根据变量(“ toggle”)是否为或分配引用的类(在上面为“红色”)来工作。