AngularJSマウスイベントで遊んでいて、問題が発生しました。私は知っていますMouseEnterイベントは、要素のコンテナーにマウスが入ると発生し、その後MouseOverはすべての子要素に対して発生します。このアニメーションのおかげで マウスイベントの視覚化
ただし、私の場合、MouseEnterイベントは発生しません。私はAngular PhoneCatアプリケーション(step-10))に取り組んでおり、以下の変更を行いました:
$scope.logMouseEvent = function() {
switch (event.type) {
case "mouseenter":
console.log("Hey Mouse Entered");
break;
case "mouseleave":
console.log("Mouse Gone");
break;
default:
console.log(event.type);
break;
}
<ul class="phone-thumbs">
<li ng-repeat="img in phone.images">
<img ng-src="{{img}}" ng-Click="setImage(img)" ng-mouseenter="logMouseEvent()" ng-mouseleave="logMouseEvent()">
</li>
</ul>
mouseoverおよびmouseoutイベントのみがログに記録されます
画像がul要素であり、子要素でマウスを移動しているため、この動作が発生していますか?そして、どうすれば画像でmouseenterイベントを取得できますか?
ありがとうございました
AngularのngMouseenterディレクティブは、タイプがmouseoverであるイベントを発生させます。これは this plunker で確認できます。
NgMouseoverとの違いは、この要素内でのすべての動きの後ではなく、要素にマウスが入るときに1回だけ起動されることです。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js"></script>
</head>
<body ng-app="">
<button ng-mouseenter="lastEventType=$event.type">
Enter
</button>
Event type: {{lastEventType}}
</body>
</html>