代码之家  ›  专栏  ›  技术社区  ›  Armeen Moon

如何使用angularJS和jqlite测试event.target.hasClass()?

  •  6
  • Armeen Moon  · 技术社区  · 11 年前

    单击后,将事件传递给ctrl。我想写一个条件,如果 element.target 有这个班 modal-click-shield

    问题:

    我如何使用 .hasClass() 具有 event.target 使用角度器 jqlite ?

    问题:

    目前,我收到一个类型错误,表示:

    $scope.exitModal = function(event){
            // Return to current page when exiting the modal, via UI.
            // After state return, should set focus on the matching link.
            var target = event.target;
            console.log(target.hasClass('modal-click-shield'));
    });
    

    错误:

    TypeError:undefined不是函数

    Html:

      <div class="modal-click-shield" ng-click="exitModal($event)">
         <div ui-view="pdw"  class="product-container"></div>
      </div>
    
    3 回复  |  直到 5 年前
        1
  •  18
  •   risto    11 年前

    您的元素来自 event.target 是一个常规的HTMLElement,而不是JQlite版本。您需要执行以下操作来转换它:

    angular.element(event.target);
    
        2
  •  13
  •   iarroyo    9 年前

    如果您想继续使用JS DOM元素,而不使用jQuery或angular:

    event.target.classList.contains('modal-click-shield')
    
        3
  •  4
  •   epascarello    11 年前

    因为event.target是DOM节点,而不是“jQuery”对象。把它包起来

    var target = $(event.target);
    

    angular.element(event.target);
    
    推荐文章