Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-单击按钮时将样式/类添加到父元素_Javascript_Angularjs - Fatal编程技术网

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

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

在我的应用程序中,我有一个产品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>

{{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;
};