MouseEnter-vs MouseOver in AngularJs
Spielte ich mit AngularJS Maus-Ereignisse aus und geriet in ein problem. Ich weiß MouseEnter Ereignis wird ausgelöst, wenn die Maus betritt container ein element und dort nach MouseOver ausgelöst wird für alle Kind-Elemente.
Dank dieser animation Visualisierung von Maus-events
Jedoch stellt sich heraus, dass in meinem Fall MouseEnter-Ereignis wird nie ausgelöst. Ich arbeite an Angular PhoneCat Anwendung (Schritt 10) und habe folgende änderungen vor:
- Controllers.js: Hinzugefügt eine Methode um log-Maus-events
- phone-details.html: Hinzugefügt ng-mouseenter und ng-mouseleave Handler
JS:
$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;
}
HTML:
<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>
Ergebnis:
Nur mouseover und mouseout Ereignis protokolliert wird
Frage:
Ist dieses Verhalten geschieht, weil die Bilder sind ul element und wir bewegen die Maus in die Kind-Elemente? und Wie bekomme ich mouseenter Ereignis auf dem Bild?
Danke
- Finden die richtige Antwort hier: stackoverflow.com/questions/7286532/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eckig ist ngMouseenter Richtlinie feuert ein Ereignis, dessen Typ mouseover, wie Sie sehen können, in diese plunker.
Den Unterschied von ngMouseover ist, dass es ausgelöst wird nur einmal - wenn die Maus betritt das element, nicht nach jeder Bewegung in diesem element zu.