Javascript AngularJS-单击按钮时将样式/类添加到父元素
在我的应用程序中,我有一个产品ID列表,用户可以通过单击按钮将其分配给“热”或“冷” 以下是此列表的显示方式: 这就是它的创建方式:Javascript AngularJS-单击按钮时将样式/类添加到父元素,javascript,angularjs,Javascript,Angularjs,在我的应用程序中,我有一个产品ID列表,用户可以通过单击按钮将其分配给“热”或“冷” 以下是此列表的显示方式: 这就是它的创建方式: <table> <tr ng:repeat="acq in WaterList"> <td style="border:0; padding:5px 20px">{{acq.ProductNumber}}</td> <td style="border:0; padding:5px
<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>
{{acq.ProductNumber}
热的
冷的
我想向按钮的父级添加样式以添加类,例如添加边框以显示单击的按钮
我怎样才能做到这一点与角度
另一个想法是将引导类
disabled
(不使用ng disabled或disabled HTML属性,因为按钮应该保持可点击)添加到未点击按钮。您可以使用hr标记而不是css中的按钮来完成此操作
<a id="btn" href="#btn">Demo</a>
这里有一个您可以使用hr标签而不是css中的按钮来完成此操作
<a id="btn" href="#btn">Demo</a>
这里有一个你可以这样做 HTML: CSS: 我省略了所有其他变量等,只是为了测试它,但您可能知道如何在自己的html和函数中实现它。你也可以用这个做一些变化。例如,在单击“热”或“冷”时,设置不同的边框或其他任何选项 根据评论进行编辑: 您可以像这样切换类:
tr.hot button.hot{
边框:2倍纯红;
}
冷按钮{
边框:2件纯蓝;
}
试验
您点的菜
{{acq.ProductNumber}
热的
冷的
函数testCtrl($scope){
$scope.WaterList=[
{
“ProductNumber”:1
},{
“ProductNumber”:2
},{
“ProductNumber”:3
}
];
$scope.updAC=函数(元素,集合){
var tr=angular.element(element.target).parent().parent();
tr.removeClass(“热”);
tr.removeClass(“冷”);
如果(tr.HASSCLASS(集合)){
tr.removeClass(组);
}否则{
tr.addClass(set);
}
};
$scope.updAF=函数(元素,集合){
var tr=angular.element(element.target).parent().parent();
tr.removeClass(“热”);
tr.removeClass(“冷”);
如果(tr.HASSCLASS(集合)){
tr.removeClass(组);
}否则{
tr.addClass(set);
}
};
}
你可以这样做
HTML:
CSS:
我省略了所有其他变量等,只是为了测试它,但您可能知道如何在自己的html和函数中实现它。你也可以用这个做一些变化。例如,在单击“热”或“冷”时,设置不同的边框或其他任何选项
根据评论进行编辑:
您可以像这样切换类:
tr.hot button.hot{
边框:2倍纯红;
}
冷按钮{
边框:2件纯蓝;
}
试验
您点的菜
{{acq.ProductNumber}
热的
冷的
函数testCtrl($scope){
$scope.WaterList=[
{
“ProductNumber”:1
},{
“ProductNumber”:2
},{
“ProductNumber”:3
}
];
$scope.updAC=函数(元素,集合){
var tr=angular.element(element.target).parent().parent();
tr.removeClass(“热”);
tr.removeClass(“冷”);
如果(tr.HASSCLASS(集合)){
tr.removeClass(组);
}否则{
tr.addClass(set);
}
};
$scope.updAF=函数(元素,集合){
var tr=angular.element(element.target).parent().parent();
tr.removeClass(“热”);
tr.removeClass(“冷”);
如果(tr.HASSCLASS(集合)){
tr.removeClass(组);
}否则{
tr.addClass(set);
}
};
}
检查。检查。将对象传递给updAF和updAC函数,并添加具有对象属性的ng类:
<table>
<tr ng:repeat="acq in WaterList">
<td style="border:0; padding:5px 20px">{{acq.ProductNumber}}</td>
<td style="border:0; padding:5px 20px" ng-class="{hot: acq.hot}"><button class="btn btn-primary" type="button" ng-click="updAC(acq)">HOT</button></td>
<td style="border:0; padding:5px 20px"ng-class="{cold: acq.cold}"><button class="btn btn-primary" type="button" ng-click="updAF(acq)">COLD</button></td>
</tr>
</table>
将对象传递给updAF和updAC函数,并使用对象属性添加ng类:
<table>
<tr ng:repeat="acq in WaterList">
<td style="border:0; padding:5px 20px">{{acq.ProductNumber}}</td>
<td style="border:0; padding:5px 20px" ng-class="{hot: acq.hot}"><button class="btn btn-primary" type="button" ng-click="updAC(acq)">HOT</button></td>
<td style="border:0; padding:5px 20px"ng-class="{cold: acq.cold}"><button class="btn btn-primary" type="button" ng-click="updAF(acq)">COLD</button></td>
</tr>
</table>
您可以使用“node_var.parentNode”来爬升DOM树。“this”将引用侦听事件的元素。“event_var.target”将引用单击的元素。您可以使用“node_var.parentNode”来爬升DOM树。“this”将引用侦听事件的元素。“event_var.target”将引用单击的元素。我已经尝试了您的解决方案,但“active”选择不是为每个单击的按钮保留的,而是每次都会更改。哦,这就是您想要的方式?对于每个按钮,还是应该介于热和冷之间?那么,当用户选择hot时,如果在将类从cold切换到hot之前选择了cold,那么它会将类从cold切换到hot吗?如果我的解释有意义的话。每个产品Id的解释应该介于热和冷之间。是的,你的解释是有意义的。我尝试过你的解决方案,但“活动”选项并不是为每个单击的按钮保留,而是每次都更改。哦,这就是你想要的方式?对于每个按钮,还是应该介于热和冷之间?那么,当用户选择hot时,如果在将类从cold切换到hot之前选择了cold,那么它会将类从cold切换到hot吗?如果我的解释有意义的话。每个产品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" ng-class="{hot: acq.hot}"><button class="btn btn-primary" type="button" ng-click="updAC(acq)">HOT</button></td>
<td style="border:0; padding:5px 20px"ng-class="{cold: acq.cold}"><button class="btn btn-primary" type="button" ng-click="updAF(acq)">COLD</button></td>
</tr>
</table>
$scope.updAF = function(acq) {
acq.cold = true;
acq.hot = false;
};
$scope.updAC = function(acq) {
acq.hot = true;
acq.cold = false;
};