AngularJS イベント
- 前のページ AngularJS DOM
- 次のページ AngularJS フォーム
AngularJS は独自の HTML イベントインストラクションを持っています。
AngularJS イベント
以下のいずれか一つまたは複数のインストラクションを使用して、HTML要素に AngularJS イベントリスナーを追加できます:
ng-blur
ng-change
ng-click
ng-copy
ng-cut
ng-dblclick
ng-focus
ng-keydown
ng-keypress
ng-keyup
ng-mousedown
ng-mouseenter
ng-mouseleave
ng-mousemove
ng-mouseover
ng-mouseup
ng-paste
イベントコマンドは、特定のユーザーエベントで AngularJS 関数を実行するのを許可します。
AngularJS イベントは HTML イベントをオーバーライドしません。両方のイベントが実行されます。
マウスイベント
要素に光標が移動したとき、以下の順序でマウスイベントが発生します:
- ng-mouseover
- ng-mouseenter
- ng-mousemove
- ng-mouseleave
または、要素がマウスクリックされたときには、以下の順序でトリガーされます:
- ng-mousedown
- ng-mouseup
- ng-click
どの HTML 要素にもマウスイベントを追加できます。
インスタンス
マウスが H1 要素の上に移動したとき、count 変数を増やします:
<div ng-app="myApp" ng-controller="myCtrl"> <h1 ng-mousemove="count = count + 1">マウスを上に持って!</h1> <h2>{{ count }}</h2> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.count = 0; }); </script>
ng-click ディレクティブ
ng-click
ディレクティブは、要素がクリックされたときに実行される AngularJS コードを定義します。
インスタンス
<div ng-app="myApp" ng-controller="myCtrl"> <button ng-click="count = count + 1">クリックして!</button> <p>{{ count }}</p> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.count = 0; }); </script>
関数を参照することもできます:
インスタンス
<div ng-app="myApp" ng-controller="myCtrl"> <button ng-click="myFunction()">クリックして!</button> <p>{{ count }}</p> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.count = 0; $scope.myFunction = function() { $scope.count++; } }); </script>
切り替え、真/偽
もし、ボタンをクリックしたときに一部のHTMLコードを表示し、もう一度クリックすると隠す、ダウンメニューのようにしたい場合は、ボタンをスイッチのように動作させる必要があります:
クリックしてインスタンス
<div ng-app="myApp" ng-controller="myCtrl"> <button ng-click="myFunc()">クリックして!</button> <div ng-show="showMe"> <h1>メニュー:</h1> <div>ピザ</div> <div>パスタ</div> <div>魚介類</div> </div> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.showMe = false; $scope.myFunc = function() { $scope.showMe = !$scope.showMe; } }); </script>
showMe
変数は開始時にブール値です。 false
を使用して呼び出します。
myFunc
関数を !
(非)演算子、 showMe
変数をその現在の値の逆に設定することができます。
$event オブジェクト
関数を呼び出すときには、 $event
オブジェクトを引数として渡します。
$event
オブジェクトはブラウザのイベントオブジェクトを含んでいます:
インスタンス
<div ng-app="myApp" ng-controller="myCtrl"> <h1 ng-mousemove="myFunc($event)">マウスを上に持ってくれ!</h1> <p>座標: {{x + ', ' + y}}</p> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.myFunc = function(myE) { $scope.x = myE.clientX; $scope.y = myE.clientY; } }); </script>
- 前のページ AngularJS DOM
- 次のページ AngularJS フォーム