2017-04-22 20 views
1

div内の入力ボックスをクリックするとdiv機能が有効になるシナリオがあります。

divが選択されていて、色が赤であるとします。選択したdiv内にある入力ボックスをクリックすると、divは選択されていません(灰色)。動作していない私は、入力ボックスに$ event.stopPropogationを使用している。このため

HTML

<body> 
    <div class="container" ng-controller="BaseController"> 
     <div class="row" ng-click="selectedDiv=!selectedDiv" ng-class="{'colorDiv':selectedDiv}"> 
      <input placeholder="enter text" ng-mousedown="$event.stopPropagation()"> 
     </div> 
    </div> 
</body> 

コントローラ:

app.controller('BaseController', function($scope) { 
    $scope.selectedDiv=true; 
}); 

CSS:

.row{ 
    width:250px; 
    height:200px; 
    border:1px solid grey; 
} 
.colorDiv{ 
    border:1px solid red; 
} 

DEMO

ご協力いただければ幸いです。

+0

は、なぜあなたは代わりに 'NG-mousedown'の' NG-click'を使用していませんか? – Leguest

答えて

1

の開始値on inputボックス)。

ng-click="$event.stopPropagation();" 

Plunker

0

現在の設定は選択した状態から開始し、divをクリックすると選択されていない状態になります。

app.controller('BaseController', function($scope) { 
    $scope.selectedDiv=false; 
}); 

変更するには、明示的ng-click代わりのng-mousedownホバー(マウスダウンのみ発動するを使用することができ、同じのため、バブルアップにinputボックスのイベント伝播をクリックし停止するようにしました$scope.selectedDiv = false;

関連する問題