Angular 在行上触发 ng-click 但在 href 上不触发
Angular fire ng-click on row but not on href
我用 bootstrap 创建了一个页面,我想在用户单击该行时执行一个操作。这很简单,我把 ng-click
放在行的 div
上。
但是,在行元素中我有一个 link,我想避免在用户点击 link 时触发 ng-click
(在那个如果它应该打开 link)
的 url
这是一个 picture 的行。基本上,如果用户点击 link 符号以外的任何地方,它应该触发 ng-click,如果它点击 link 符号,它应该打开 url.
这可能吗?
PS:我尝试在除 href 元素之外的每个项目上放置 ng-click
,但 href 元素位于其他内容的列内,如果我不放置 ng-click
在列上,如果用户点击该列的空白 space,它不会触发。
<div class="col-sm-8" >
<a href="{{club.url}}" ><i class="fa fa-link"></i></a> |
<span class="h5 small">{{club.description}}</span>
</div>
$event.stopPropagation()
在锚标记的 ng-click
上冒泡事件。
标记
<div class="col-sm-8" ng-click="myMethod()">
<a href="{{club.url}}" ng-click="$event.stopPropagation();"><i class="fa fa-link"></i></a> |
</div>
您必须停止从锚点到具有点击事件处理程序的父级 div 的事件传播。
<div class="col-sm-8" ng-click="onRowClick()">
<a href="{{club.url}}" ng-click="onLinkClick($event)" ><i class="fa fa-link"></i></a> |
<span class="h5 small">{{club.description}}</span>
</div>
JS
$scope.onLinkClick = function (e) {
e.stopPropagation();
}
尝试将 ng-click="$event.stopPropagation();"
添加到您的定位标签
<a href="{{club.url}}" ng-click="$event.stopPropagation();"><i class="fa fa-link"></i></a>
我用 bootstrap 创建了一个页面,我想在用户单击该行时执行一个操作。这很简单,我把 ng-click
放在行的 div
上。
但是,在行元素中我有一个 link,我想避免在用户点击 link 时触发 ng-click
(在那个如果它应该打开 link)
这是一个 picture 的行。基本上,如果用户点击 link 符号以外的任何地方,它应该触发 ng-click,如果它点击 link 符号,它应该打开 url.
这可能吗?
PS:我尝试在除 href 元素之外的每个项目上放置 ng-click
,但 href 元素位于其他内容的列内,如果我不放置 ng-click
在列上,如果用户点击该列的空白 space,它不会触发。
<div class="col-sm-8" >
<a href="{{club.url}}" ><i class="fa fa-link"></i></a> |
<span class="h5 small">{{club.description}}</span>
</div>
$event.stopPropagation()
在锚标记的 ng-click
上冒泡事件。
标记
<div class="col-sm-8" ng-click="myMethod()">
<a href="{{club.url}}" ng-click="$event.stopPropagation();"><i class="fa fa-link"></i></a> |
</div>
您必须停止从锚点到具有点击事件处理程序的父级 div 的事件传播。
<div class="col-sm-8" ng-click="onRowClick()">
<a href="{{club.url}}" ng-click="onLinkClick($event)" ><i class="fa fa-link"></i></a> |
<span class="h5 small">{{club.description}}</span>
</div>
JS
$scope.onLinkClick = function (e) {
e.stopPropagation();
}
尝试将 ng-click="$event.stopPropagation();"
添加到您的定位标签
<a href="{{club.url}}" ng-click="$event.stopPropagation();"><i class="fa fa-link"></i></a>