2016-04-08 8 views
0

Ich versuche, die CSS-Klasse eines div-Elements auf Klick zu ändern. Unten ist der Code, den ich versuche. 'input-large' sollte standardmäßig aktiviert sein. 'input-large input-active' sollte aktiv werden, wenn Sie auf Benutzername klicken und wird inaktiv, wenn Sie irgendwo anders klicken.change Klasse bei Klick in angularJs ändern

<div class="input-large"> 
 
    <label class="input-label">Username</label> 
 
    <input class="input-field" type="text"> 
 
</div> 
 

 
<div class="input-large input-active"> 
 
      <label class="input-label">Username</label> 
 
      <input class="input-field" type="text"> 
 
</div>

mir bitte mitteilen, wie die DIVs auf Klick ändern

Antwort

0

bitte verwenden ng klicken und ng-Blur folgen das Snippet in:

http://jsfiddle.net/atXAC/11/

<div ng-controller="MyCtrl"> 

<div ng-class="{'active':hasFocus==true,'inactive':hasFocus==false}">Enter your Name here</div> 
<input type="text" ng-model="user.name" ng-click="hasFocus=true" ng-customblur="onBlur()" required id="name"/> 

</div> 

hier geht Ihre js

var myApp = angular.module('myApp', []); 

myApp.directive('ngCustomblur', ['$parse', function($parse) { 
    return function(scope, element, attr) { 
    var fn = $parse(attr['ngCustomblur']);  
    element.bind('blur', function(event) {   
     scope.$apply(function() { 
     fn(scope, {$event:event}); 
     }); 
    }); 
    } 
}]); 

function MyCtrl($scope) { 
    $scope.onBlur = function(){   
     $scope.hasFocus = false; 
    } 
} 

bitte es für Ihre Form anpassen .. seine Arbeits

+0

Hallo Ankur, ich habe gerade gesehen, dass die eckige Version in der Geige 1.0.3 ist. Ich benutze 1.4.8 und ich kann nicht den gleichen Code in 1.4.8 arbeiten. Könnten Sie mir bitte mitteilen, wie Sie diesen Code auf 1.4.8 aktualisieren können? – user56690

0

ein anderer Ansatz kann die CSS-Klasse in onClick-Handler in Ihrem Controller sein anhängen.