我的问题是,我想禁用div。我没办法做到这一点。
<div ng-repeat="item in items">
<div ng-click="somefunction()">{{some value}}</div>
</div>
JS:
$scope.items = [1,2,3,4,5];
我想禁用所有具有均值的div。
答案 0 :(得分:1)
HTML无法禁用Div。你可以通过代码来实现:
<div ng-click="somefunction(item)">{{some value}}</div>
$scope.somefunction = function(item) {
if( item % 2 === 0 ) {
return;
}
// rest of logic as before
};
答案 1 :(得分:1)
你无法禁用div。但您可以禁用链接或按钮,如:
<div ng-repeat="item in items">
<a ng-click="somefunction()" ng-disabled="disabledEvenItems(item)">{{some value}}</a>
</div>
或者您可以在其上添加样式:
<div ng-repeat="item in items">
<div ng-click="somefunction()" ng-class="{{'myClass': disabledEvenItems(item)}}">{{some value}}</div>
</div>
</div>
$scope.disabledEvenItems = function(item) {
return item % 2 !== 0
};
答案 2 :(得分:1)
要仅针对奇数值运行该功能,您可以使用$even
/ $odd
辅助属性ngRepeat
优惠:
<div ng-repeat="item in items">
<div ng-click="$even && somefunction()">{{some value}}</div>
</div>
UPD。
做你想做的事的角度方法是使用这样的表达式:
<div ng-click="item % 2 && somefunction()">{{some value}}</div>
答案 3 :(得分:0)
使用display:none
<div id="someId" style="display: none;">
visibility: hidden
隐藏了元素,但它仍占用了布局中的空间。
display: none
从文档中完全删除元素,它不会占用任何空间。
答案 4 :(得分:0)
试试这个:
从div中删除onclick,如下所示
<div ng-repeat="item in items" class="divList">
<div>{{some value}}</div>
</div>
使用.filter()
查找具有偶数值的div并分离单击处理程序
$(function(){
$('.divList div').click(somefunction());
$('.divList div').filter(function(){
var value = parseInt($(this).text()) || 0;
return (value % 2 ==0);
}).off('click');
});