Как проверить, если event.target.hasClass() использует angularJS и jqlite?
После щелчка передайте событие ctrl. Я хочу написать условие, которое вернет true, если 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 is not a function
Html:
<div class="modal-click-shield" ng-click="exitModal($event)">
<div ui-view="pdw" class="product-container"></div>
</div>
3 ответа
Решение
Ваш элемент из event.target
это обычный HTMLElement, а не версия JQlite. Вы должны сделать это, чтобы преобразовать это:
angular.element(event.target);
Если вы хотите продолжать использовать простой элемент JS DOM без использования jQuery или angular:
event.target.classList.contains('modal-click-shield')
Потому что event.target является узлом DOM, а не объектом "jQuery". Заверните это
var target = $(event.target);
или же
angular.element(event.target);