jQuery日历事件 - 点击不使用ftLab快速点击触发

时间:2013-12-19 05:48:35

标签: javascript jquery fullcalendar

我正在使用AngularJS日历(这实际上是由Adam Shaw为jangle包装的jQuery完整日历)。在这里,日历事件项目点击在ipad和桌面上都很好,直到我通过ft labs(https://github.com/ftlabs/fastclick)引入fastclick.js。现在,日历事件项目点击仅适用于桌面,但在ipad上根本不起作用!

然而,在桌面和iPad上快速点击其他ng-click工作正常。

我了解fastclick.js的工作方式,只需添加触摸结束事件侦听器并调用其中的点击事件,并且无法理解为什么这会因日历事件项目点击而失败。

注意:我尝试使用ngTouch而不是fastclick,但是他们的ng-click不会变快。根据谷歌的说法,ngTouch的ng-click不能与jQuery一起使用

3 个答案:

答案 0 :(得分:1)

如果所有其他方法都失败了,您可以使用可视事件检查哪些事件与您的元素相关联:http://www.sprymedia.co.uk/article/visual+event 这为任何网页添加了一个覆盖层,让您可以直观地检查链接到元素的JS代码(它会在弹出窗口中显示这段代码)。

通过这种方式,您可以轻松查看是否所有内容都已正确设置。

PS:我没有链接到这个工具或它的制造商。

答案 1 :(得分:1)

I had similar issue. fastclickjs blocks every jQuery .click() . But if you dispatch event without jQuery everything works fine.

答案 2 :(得分:1)

这是一个老问题,但也许对某人有帮助。

我遇到了类似的问题,甚至fastclick.js没有帮助,而且在iPad上也不够快。

问题是,在正常的浏览器上,点击事件(在iPad上)在touchstart上有300毫秒的延迟,而在touchend上有300毫秒的延迟。

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)"/>

<强>优势: 永远不会与标准点击事件冲突。

<强>缺点 您必须在需要的地方重构代码