ここに例があります。多くのサイトのようにイメージオーバーレイを作成したいとします。したがって、サムネイルをクリックすると、ウィンドウ全体に黒いオーバーレイが表示され、画像の拡大版が中央に表示されます。黒いオーバーレイをクリックすると、表示が消えます。画像をクリックすると、次の画像を表示する関数が呼び出されます。
HTML:
<div ng-controller="OverlayCtrl" class="overlay" ng-click="hideOverlay()">
<img src="http://some_src" ng-click="nextImage()"/>
</div>
JavaScript:
function OverlayCtrl($scope) {
$scope.hideOverlay = function() {
// Some code to hdie the overlay
}
$scope.nextImage = function() {
// Some code to find and display the next image
}
}
あなたは画像をクリックして、両方の場合、問題は、この設定でそれであるnextImage()
とhideOverlay()
呼ばれています。しかし、私が欲しいのは、nextImage()
呼ばれることだけです。
次のnextImage()
ような関数でイベントをキャプチャしてキャンセルできることを知っています。
if (window.event) {
window.event.stopPropagation();
}
...しかし、オーバーレイ内の要素のすべての関数にこのスニペットをプレフィックスする必要がない、より優れたAngularJSの方法があるかどうかを知りたいです。
onclick
ではなく、のための方法だと思いますng-click
。
return false
関数の最後