href 和 ng-click 在移动设备上的同一个标签中不起作用

href and ng-click do not work in the same tag on Mobile

href 和 ng-click 如果在移动设备中用于相同或重叠的标记中,则不会同时调用,但在桌面上可以完美运行。我的猜测是 touch 是什么打破了这个。

示例:

<a href="/" ng-click="playSound()"> link </a>

-或-

<div ng-click="playSound()">
  <a href="/"> link </a>
</div>

href 和 ng-click 都在桌面视图中调用,但仅在使用移动设备的触摸时调用 playSound()

我想要实现的目标:我希望能够link到下一页,并在触摸时调用 playSound() 函数。目前,ng-click 在触摸时会覆盖 href,我永远不会 linked 到下一页。

我 运行 遇到了同样的问题并找到了答案 here

简而言之,您可以有多个具有相同名称的指令,并且它们在被调用时都将得到 运行。这允许您编写一个自定义指令,也称为 ng-click,与遍历所有链接并将重定向移动到 ng-click.

调用的函数相比,它需要更少的工作

代码如下:

angular.module('ngClick', function( $location ) {
  return {
    link: function(scope, elem, attrs) {
      if(attrs.href) {
        elem.on('touchend', function() {
          $location.path(attrs.href);        
        });
      }
    },
    priority: 1
  };
});

对我来说,将重定向移动到我的函数中并使用 $location:

重定向页面就足够简单了
$location.path('www.my-link.com');