ng-mouseleave 触发器在 mouseenter 上



我将ng-mouseleave事件附加到我的html标签上。不幸的是,它触发了两次。一次是用户离开网站时,这很好,一次是他进入网站时,这是不需要的。我有一个控制台.log关于事件。

普伦克:http://run.plnkr.co/plunks/rjfyCw/

索引.html

    <html ng-app="myApp" id="myApp" ng-controller="MainController as mainCtrl" ng-mouseleave="mainCtrl.log('xy')">

控制器.js

myAppControllers.controller('MainController', [ function () {
    this.log = function(log) {
      console.log(log);
    };
  }]);

这是因为事件也在子元素上触发,您需要手动停止此操作:

ng-mouseleave="mainCtrl.log($event, 'xy')"

this.log = function($event, log) {
      $event.stopPropagation()
      console.log(log);
    };

http://plnkr.co/edit/sSpqiIqMz3rVYzrPQ0iC?p=preview

最新更新