如何禁用div和div中的所有元素?

时间:2015-01-14 10:31:24

标签: javascript jquery css angularjs html5

我的问题是,我想禁用div。我没办法做到这一点。

<div ng-repeat="item in items">
<div ng-click="somefunction()">{{some value}}</div>
</div>

JS:

 $scope.items = [1,2,3,4,5];

我想禁用所有具有均值的div。

5 个答案:

答案 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');
});