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');
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');