簡體   English   中英

ng-單擊“無法正常工作”

[英]ng-click Not working Correctly

我正在添加一個下拉菜單,但是有一個錯誤正在嘗試修復。 目前,當我單擊圖標時,下拉列表將起作用。 但是,當單擊網站的其他按鈕或其他區域時,下拉列表保持打開狀態。 我希望它關閉...該項目中有很多代碼,所以我已經介紹了造成錯誤的部分。 有什么建議么?

HTML:

<div class="fa fa-ellipsis-v action-icon" ng-class="{'selected': menuActions}" ng-click="dropDownMenu()"></div>

JavaScript的:

// This function handles the ellipsis
            $scope.dropDownMenu = function () {
                  $scope.myShareFeature = false;
                  $scope.mySignatureFeature = false;
                  $scope.menuActions = !$scope.menuActions;

在這里看這個答案:

單擊各處,但這里有活動

他創建了自己的指令-然后在控制器上使用它:

app.directive('clickAnywhereButHere', function($document){
  return {
    restrict: 'A',
    link: function(scope, elem, attr, ctrl) {
      elem.bind('click', function(e) {
        // this part keeps it from firing the click on the document.
        e.stopPropagation();
      });
      $document.bind('click', function() {
        // magic here.
        scope.$apply(attr.clickAnywhereButHere);
      })
    }
  }
})

HTML

<div class="fa fa-ellipsis-v action-icon" ng-class="{'selected': menuActions}" ng-click="dropDownMenu()" click-anywhere-but-here="dropDownMenu()"></div>

可能您必須使用頂級“單擊”事件偵聽器來關閉菜單。 同樣,您應該停止菜單內的“單擊”事件傳播。 但是,如果您將使用一些現有的庫或其他庫,那就更好了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM