我正在使用Jquery Boostrap tab method。 是否可以阻止click方法以外的方法中的默认单击方法?
我正在使用AnuglarJS所以我希望这可以很容易地修复/黑客攻击,而无需重新设计AngularJS中的整个选项卡窗格。
我可以使用Jquery
更改标签$('#tabId a[href="#s' + targetId + '"]').tab('show');
我可以使用
之类的东西阻止点击$('#tabId a[href="#s' + targetId + '"]').preventDefault();
或者
$('#tabId a[href="#s' + targetId + '"]').addEventListener("click", function (e) {
e.preventDefault()
});
答案 0 :(得分:1)
ngClick
指令会公开$event
变量。
在ng-click
属性中,只需添加$event.preventDefault();
。
例如,如果你有:
<a href="#" ng-click="doSomething();">Do something</a>
您只需将其更改为:
<a href="#" ng-click="doSomething(); $event.preventDefault();">Do something</a>
OR
您可以将$event
变量传递给您的方法。
<a href="#" ng-click="doSomething($event);">Do something</a>
然后在您的方法中调用preventDefault()
。
$scope.doSomething = function($event) {
$event.preventDefault();
//do something
}
答案 1 :(得分:0)
如果不捕获点击事件,则无法阻止默认点击方法。这不适合你吗?
{{1}}
答案 2 :(得分:0)
以前对类似情况的回答似乎正确地解决了preventDefault,但与Gregg Duncan的答案类似。适当的区别在于bind和unbind调用使用所选对象的本地上下文的方式。