【问题标题】:ng-click not working for anchor tag in internet explorer after adding href attribute添加 href 属性后,ng-click 不适用于 Internet Explorer 中的锚标记
【发布时间】: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 断点,但不是
  • 所以,当你点击锚标签时,什么都不会触发(如果你为锚标签指定链接),对吧?

标签: javascript jquery angularjs internet-explorer


【解决方案1】:

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

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

                   event.preventDefault();
                   }
});

})

【讨论】:

  • 嗨 Manij 感谢您的回答,在我的应用程序中我没有使用路由
猜你喜欢
  • 2015-12-07
  • 2019-03-24
  • 2015-12-10
  • 2012-06-08
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 2015-09-01
  • 2011-05-04
相关资源
最近更新 更多