2

点击后将事件传递给ctrl。我想写一个条件,如果element.target有类modal-click-shield如何使用angular和jqlite测试event.target.hasClass()?

问题,将返回true:

如何使用.hasClass()event.target使用angulars' 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 is not a function 

HTML:

<div class="modal-click-shield" ng-click="exitModal($event)"> 
    <div ui-view="pdw" class="product-container"></div> 
    </div> 
+3

'angular.element(event.target).hasClass ('modal-click-shield')' – PSL 2015-01-21 00:11:57

回答

15

event.target你的元素是一个普通的HTML元素,而不是JQlite版本。你需要这样做,将其转化:

angular.element(event.target); 
4

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

var target = $(event.target); 

angular.element(event.target); 
+1

我没有使用jQuery。我如何将它转换为jqlite对象? – 2015-01-21 00:06:40

+1

jqlite是一个jQuery关闭... – epascarello 2015-01-21 00:07:17

+1

ReferenceError:$未定义 – 2015-01-21 00:09:05

3

如果你想用你的JS DOM元素纯而不使用jQuery或角,以保持:

event.target.classList.contains('modal-click-shield')