Отключить 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()", но это тоже не помогло.



Любая помощь ценится. Спасибо!

534   2  

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

    Ничего не найдено.