Javascript AngularJs中的MouseEnter vs MouseOver

Javascript AngularJs中的MouseEnter vs MouseOver,javascript,html,angularjs,mouseevent,Javascript,Html,Angularjs,Mouseevent,我在玩AngularJS鼠标事件时遇到了一个问题。我知道当鼠标进入一个元素的容器时,MouseEnter事件被激发,并且在MouseOver之后,所有子元素都被激发。 多亏了这个动画 然而,在我的例子中,MouseEnter事件从未被触发。我正在开发Angular PhoneCat应用程序(步骤10),并进行了以下修改: Controllers.js:添加了记录鼠标事件的方法 phone details.html:添加了ng mouseenter和ng mouseleave处理程序 $scop

我在玩AngularJS鼠标事件时遇到了一个问题。我知道当鼠标进入一个元素的容器时,MouseEnter事件被激发,并且在MouseOver之后,所有子元素都被激发。 多亏了这个动画

然而,在我的例子中,MouseEnter事件从未被触发。我正在开发Angular PhoneCat应用程序(步骤10),并进行了以下修改:

  • Controllers.js:添加了记录鼠标事件的方法
  • phone details.html:添加了ng mouseenter和ng mouseleave处理程序
  • $scope.logMouseEvent=function(){
    开关(事件类型){
    案例“mouseenter”:
    log(“嘿,鼠标输入”);
    打破
    案例“mouseleave”:
    log(“鼠标不见了”);
    打破
    违约:
    console.log(事件类型);
    打破
    }

    Angular的ngMouseenter指令触发类型为mouseover的事件,如中所示


    与ngMouseover的区别在于,它只在鼠标进入元素时触发一次,而不是在该元素内的每次移动之后

    <!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>
    
    
    进入
    事件类型:{lastEventType}
    
    谢谢@audonex,但这正是我想理解的。为什么您的plunker从不显示mouseenter事件?如果两个事件都相同,那么为什么有两个事件用于相同的目的?@Rohit我认为这是一个事件,由两个不同的指令触发,用于两个不同的目的。应该有一个原因来解释鼠标的类型enter事件是mouseover,但目前我想不出任何事件。我认为没有什么需要理解的,只是接受它的方式。应该没有由此造成的限制。“在该元素内的每次移动之后”-这是不正确的,移动不会触发ng mouseover。在此处找到答案:在此处找到正确答案: