添加 href 属性后,ng-click 不适用于 Internet Explorer 中的锚标记

Posted

技术标签:

【中文标题】添加 href 属性后,ng-click 不适用于 Internet Explorer 中的锚标记【英文标题】:ng-click not working for anchor tag in internet explorer after adding href attribute 【发布时间】:2015-12-07 18:24:04 【问题描述】:

我有下面的锚标记

    <a class="accordion-toggle" ng-click="toggleOpen()" accordion-      
    transclude="heading"> 

并且toggleOpen函数正在按预期在ng-click上触发。但是当我将href添加到上面的锚标记中时

    <a href="#" class="accordion-toggle" ng-click="toggleOpen()" accordion-      
    transclude="heading">

toggleOpen() 函数没有被触发,即使我尝试了以下组合:

   1) <a href="#" class="accordion-toggle" ng-click="$event.preventDefault(); $event.stopPropagation(); toggleOpen()" accordion-      
    transclude="heading">

   2)<a href="" class="accordion-toggle" ng-click="$event.preventDefault(); $event.stopPropagation(); toggleOpen()" accordion-      
    transclude="heading">

   3)<a ng-href="#" class="accordion-toggle" ng-click="$event.preventDefault(); $event.stopPropagation(); toggleOpen()" accordion-      
    transclude="heading">

我可以知道如何触发 toggleOpen(),提前谢谢。

【问题讨论】:

你能指定IE的版本并为它制作小提琴吗? 嗨 Stevar,IE 版本是 11.,我会为它摆弄它 控制台有什么错误吗? 控制台 Jai 中没有错误,我在 ie 中的调试器控制台中放置了一个断点,没有执行 href 断点,但不是 所以,当你点击锚标签时,什么都不会触发(如果你为锚标签指定链接),对吧? 【参考方案1】:

您是否在应用程序中使用路由。如果你是,那么 href 会再次将你重定向到同一页面。如果您使用的是 ngroute,那么在您的 app.run 中您可以使用路由更改事件:

app.run($rootScope,function()
     $rootScope.$on('$locationChangeStart', function(event, next, current) 
                  if(next == '#' || next.indexOf('#') == -1) 

                   event.preventDefault();
                   
);

)

【讨论】:

嗨 Manij 感谢您的回答,在我的应用程序中我没有使用路由

以上是关于添加 href 属性后,ng-click 不适用于 Internet Explorer 中的锚标记的主要内容,如果未能解决你的问题,请参考以下文章

Flot legendFormatter 不适用于 ng-click

Selenium click 不适用于 angularjs ng-click 事件

ng-repeat 内的 ng-click 不适用于 :focus 和 display

EF 自动迁移不适用于虚拟属性

html5 href 下载属性不适用于 .pdf 文件

唯一索引不适用于 Mongoose / MongoDB