我正在使用AngularJS日历(本质上是Adam Shaw为angular包装的jQuery完整日历)。在我引入ft实验室(https://github.com/ftlabs/fastclick)的fastclick.js之前,日历事件-项目点击功能在ipad和台式机上都能正常运行。现在,日历事件-项目点击只在桌面上有效,但在ipad上根本不起作用!
然而,其他的ng-click在桌面和iPad上都能很好地使用fastclick。
我通过简单地添加触摸端事件侦听器并在其中调用点击事件来理解fastclick.js是如何工作的,我不明白为什么这会在日历事件-项目点击中失败。
注意:我尝试使用ngTouch而不是fastclick,但是他们的ng-click不会变得很快。根据谷歌的说法,ngTouch的ng-click不能与jQuery一起使用
发布于 2015-04-30 15:22:57
如果所有其他方法都失败了,你可以使用可视事件来检查哪些事件链接到你的元素:http://www.sprymedia.co.uk/article/visual+event这会给任何网页添加一个覆盖层,让你直观地检查链接到元素的JS代码(它会在弹出窗口中显示代码片段)。
通过这种方式,您可以很容易地查看是否一切都设置正确。
附言:我没有链接到这个工具或它的制造商。
发布于 2015-07-29 01:05:09
我也有过类似的问题。fastclickjs会阻止每个jQuery .click()。但是如果你在没有jQuery的情况下发送事件,一切都会正常工作。
发布于 2015-10-14 19:45:58
这是一个古老的问题,但也许它对某些人有帮助。
我也有类似的问题,即使是fastclick.js也没有帮助,在iPad上也不够快。
问题是,在正常的浏览器上,点击事件(在iPad上)在touchstart上延迟300ms,在touchend上延迟300ms。
fastclick.js也和你的日历有一些冲突。
所以我写了一个自己的指令,并将其命名为ng-mobile-click。
指令ngMobileClick:
App.directive("ngMobileClick", [function () {
    return function (scope, elem, attrs) {
        elem.bind("touchstart click", function (e) {
            e.preventDefault();
            e.stopPropagation();
            scope.$apply( attrs["ngMobileClick"] );
        });
    }
}]);模板中的使用率:
<input type="button" value="somevalue" ng-mobile-click="someFunction(someParam)"/>的优势:永远不会与标准的点击事件冲突。
Disadvantage你必须在需要的地方重构你的代码
https://stackoverflow.com/questions/20674324
复制相似问题