两个鼠标事件在同一个按钮上有角度

时间:2017-05-19 10:44:22

标签: angularjs angular-material

我正在开发一个项目,其中需要我使用md-menu构建的菜单将在同一个按钮上执行两个功能。

首先,一旦你点击按钮,就会发生一些事情,但是当你将鼠标悬停在按钮上时,它会打开下拉列表。

<md-menu-bar md-selected-nav-item="$ctrl.currentNavItem" md-no-ink-bar="$ctrl.landingPage" md-theme="reverse" aria-label="Main menu">
<md-menu ng-repeat="item in $ctrl.menuItems track by item.id">
    <md-button ng-mouseover="$mdMenu.open()" ng-click="$ctrl.menuClick(item)">{{::item.name}}</md-button>
    <md-menu-content ng-show="item.sub.length > 0">
        <md-menu-item ng-repeat="subitem in item.sub">
            <md-button ng-click="$ctrl.menuClick(subitem)">
                {{::subitem.name}}
            </md-button>
        </md-menu-item>
    </md-menu-content>
</md-menu>

这甚至是可能的,还是我试图解决甚至无法解决的问题?

1 个答案:

答案 0 :(得分:1)

我不确定我是否正确理解你,但我认为你可以通过$timeout实现它,而不是直接在ng-mouseover中打开菜单。这只是一个选择。

  

Here你有一个有效的例子。

代码,仅供参考。有关完整的详细信息,请参阅plunker:

this.openMenu = function($mdMenu, ev) {
  $timeout(function() {
    if ($scope.openWhenHover) {
      originatorEv = ev;
      $mdMenu.open(ev);
    }
  }, 1000);
};


this.clickButton = function() {
  $scope.clickedButton = true;
  $scope.openWhenHover = false;
  $timeout(function() {
    $scope.clickedButton = false;
    $scope.openWhenHover = true;
  }, 1500);
}; 

希望有所帮助