如何避免在单击AngularJS中的链接时触发onclick()事件

时间:2014-02-11 07:51:02

标签: javascript jquery angularjs onclick

首先,我想说我已经看过一些类似问题的主题。我尝试过这些主题的回答,但我找不到解决问题的方法。也许不同之处在于我正在使用 AngularJS

(HTML)

<li class="article-list_item" ng-repeat="noticia in news" >
    <article class="article_news" id="newsBlock{{noticia.id}}" >    
        <header>
          <h1 class="article_newsTitle"> 
              <a href="http://www.google.es" rel="tooltip" title="{{noticia.title}}"
                   data-toggle="modal" ng-bind-html-unsafe="noticia.shortTitle"></a>
          </h1>
        </header>   
    </article>

(JS)

$(document).ready(function () {
     $(".article_news").click(function (event) {
         $(this).addClass("approved"); 
     });
});

我要做的是将“Approved”类添加到我单击的对象中。

但是当我点击<article>中的链接时,我不想添加Class。相反,我希望浏览器打开URL。

我该怎么做?我必须使用 stopPropagation() preventDefault()或类似内容吗?我应该如何使用它们?

提前致谢

1 个答案:

答案 0 :(得分:0)

如果你以角度方式实现它,那么Angular自动过滤器链接动作。要以角度方式实现它,您应该创建指令来绑定处理您的问题的click事件。你仍然可以像这样解决它。

ng-click="$event.stopPropagation()"

您的 HTML

     <article class="article_news" id="newsBlock{{noticia.id}}" >    
        <header>
          <h1 class="article_newsTitle"> 
              <a ng-click="$event.stopPropagation()" href="http://www.google.es" rel="tooltip" title="{{noticia.title}}"
                   data-toggle="modal" ng-bind-html-unsafe="noticia.shortTitle"></a>
          </h1>
        </header>   
    </article>