gpt4 book ai didi

javascript - AngularJS - 单击按钮时将样式/类添加到父元素

转载 作者:行者123 更新时间:2023-12-02 14:36:43 28 4
gpt4 key购买 nike

在我的应用程序中,我有一个产品 ID 列表,用户可以通过单击按钮将其分配给“热”或“冷”。

此列表的显示方式如下:

这就是它的创建方式:

<table>
<tr ng:repeat="acq in WaterList">
<td style="border:0; padding:5px 20px">{{acq.ProductNumber}}</td>
<td style="border:0; padding:5px 20px"><button class="btn btn-primary" type="button" ng-click="updAC(acq.ApartmentId, acq.ProductNumber, acq.WaterTempId)">HOT</button></td>
<td style="border:0; padding:5px 20px"><button class="btn btn-primary" type="button" ng-click="updAF(acq.ApartmentId, acq.ProductNumber, acq.WaterTempId)">COLD</button></td>
</tr>
</table>

我想向父级添加样式 <td>按钮来添加类,例如添加边框以显示单击了哪个按钮。

如何使用 Angular 做到这一点?

另一个想法可能是添加引导类 disabled (不使用 ng-disabled 或禁用 HTML 属性,因为按钮应保持可点击)到未点击的按钮。

最佳答案

你可以这样做。

HTML:

<table>
<tr ng:repeat="acq in WaterList">
<td style="padding:5px 20px">{{acq.ProductNumber}}</td>
<td style="padding:5px 20px"><button data-ng-class="{active:index=={{$index}} && set===1}" class="btn btn-primary" type="button" ng-click="updAC($index, 1)">HOT</button></td>
<td style="padding:5px 20px"><button data-ng-class="{active:index=={{$index}} && set===2}" class="btn btn-primary" type="button" ng-click="updAF($index, 2)">COLD</button></td>
</tr>
</table>

Controller :

$scope.updAC = function(index, set) {
$scope.index=index;
$scope.set=set;
};

$scope.updAF = function(index, set) {
$scope.index=index;
$scope.set=set;
};

CSS:

button.active {
border-bottom: 2px solid #000000;
}

我省略了所有其他变量等只是为了测试它,但您可能知道如何将它实现到您自己的 html 和函数中。你也可以用它来做一些变化。例如,在单击“HOT”或“COLD”时设置不同的边框或其他内容。

根据评论进行编辑:

你可以像这样切换类:

tr.hot button.hot {
border: 2px solid red;
}

tr.cold button.cold {
border: 2px solid blue;
}
<!doctype html>
<html ng-app>
<head>
<meta charset="utf-8">
<title>Test</title>
</head>

<body ng-controller='testCtrl'>
<h1>Your Order</h1>
<table>
<tr ng:repeat="acq in WaterList">
<td style="padding:5px 20px">{{acq.ProductNumber}}</td>
<td style="padding:5px 20px"><button class="btn btn-primary hot" type="button" ng-click="updAC($event, 'hot')">HOT</button></td>
<td style="padding:5px 20px"><button class="btn btn-primary cold" type="button" ng-click="updAF($event, 'cold')">COLD</button></td>
</tr>
</table>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
<script>
function testCtrl($scope) {
$scope.WaterList = [
{
'ProductNumber': 1
},{
'ProductNumber': 2
},{
'ProductNumber': 3
}
];

$scope.updAC = function(element, set) {
var tr = angular.element(element.target).parent().parent();
tr.removeClass('hot');
tr.removeClass('cold');
if (tr.hasClass(set)) {
tr.removeClass(set);
} else {
tr.addClass(set);
}
};

$scope.updAF = function(element, set) {
var tr = angular.element(element.target).parent().parent();
tr.removeClass('hot');
tr.removeClass('cold');
if (tr.hasClass(set)) {
tr.removeClass(set);
} else {
tr.addClass(set);
}
};
}
</script>
</body>
</html>

关于javascript - AngularJS - 单击按钮时将样式/类添加到父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37392217/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com