Отключить ng-клик из внешнего элемента по ссылке внутри
У меня есть сайт, использующий ui-маршрутизатор, где у меня есть таблица, и у меня есть ng-клик по ячейкам, но есть ссылка внутри ячейки. Мне нужно отключить ng-клик из ячейки, когда ссылка нажата.
<div ng-click="click()" style="background: #d3d3d3">
<a ui-sref="about">go to about page</a>
</div>
Когда я нажимаю эту ссылку, я хочу, чтобы она перешла на страницу о программе, но не вызывала функцию click. Вот plnkr: http://plnkr.co/edit/kE9CZYcYu1OPA9S0K3Jk?p=preview
Это немного отличается от моего фактического сайта, но это имеет то же самое поведение (div вместо стол). Я попытался добавить ng-click="$event.preventDefault()", но это тоже не помогло.
Любая помощь ценится. Спасибо!
2 ответов:
Предотвратите распространение события по тегу
<a>, бурлящему в div<a ui-sref="about" ng-click="$event.stopPropagation()">go to about page</a>Другой способ-проверить цель клика внутри обработчика кликов
<div ng-click="click($event)">JS
$scope.click = function(e){ if( e.target.tagName ==='A'){ return; // skip click event handler } // rest of click code }
Вы должны попробовать
$event.stopProgation()<div ng-click="click();" style="background: #d3d3d3"> <a ui-sref="about" ng-click="$event.stopProgation()">go to about page</a> </div>Которые не будут распространять события на тамошних родителей.
Comments