我有一个使用ui-router的网站,我有一张桌子,我在单元格上点击了一下,但在单元格内部有一个链接。单击链接时,我需要从单元格中禁用ng-click。
<div ng-click="click()" style="background: #d3d3d3">
<a ui-sref="about">go to about page</a>
</div>
当我点击此链接时,我希望它转到about页面,但不要调用click功能。这是一个plnkr:http://plnkr.co/edit/kE9CZYcYu1OPA9S0K3Jk?p=preview
这与我的实际网站略有不同,但这具有相同的行为(div而不是表格)。我已经尝试添加ng-click="$event.preventDefault()"
,但这也没有解决它。
感谢任何帮助。谢谢!
答案 0 :(得分:6)
阻止事件在<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
}
答案 1 :(得分:1)
您应该尝试$event.stopProgation()
<div ng-click="click();" style="background: #d3d3d3">
<a ui-sref="about" ng-click="$event.stopProgation()">go to about page</a>
</div>
不会将事件传播给父母。