Angularjs 触摸屏设备上未调用角度单击功能

Angularjs 触摸屏设备上未调用角度单击功能,angularjs,ipad,touch,angularjs-ng-click,angularjs-ng-touch,Angularjs,Ipad,Touch,Angularjs Ng Click,Angularjs Ng Touch,我有一个指令,它包含一个iScroll元素,它是用ng repeat中的li构建的: <div class="my-film"> <div class="filmstrip-container"> <div class="scroll-wrapper"> <ul class="film-container"> <li ng-repeat="film i

我有一个指令,它包含一个iScroll元素,它是用ng repeat中的li构建的:

<div class="my-film">
    <div class="filmstrip-container">
        <div class="scroll-wrapper">

            <ul class="film-container">

                    <li ng-repeat="film in films" 
                        ng-mouseover="onMouseOverItem($event)" 
                        ng-mouseleave="onMouseLeaveItem($event)"
                        ng-click="openFilm()"
                        class='film-slide'>

                     ...nested videos etc in here.

                    </li>

            </ul>

        </div>
    </div>
</div>
这在桌面上完全可以正常工作,但是在触摸屏上(在iPad上测试)永远不会调用openFilm()函数,但是元素确实应用了ng click active类

我确实在li元素上有其他事件侦听器,但是删除它们没有任何区别。这可能与iScroll有关吗


我们正在使用Angular 1.3,并添加了ngTouch。

尝试安装
在初始化应用时提供依赖项
Angular.module('app',['ngTouch')希望这将帮助您。请参阅此页

尝试安装
在初始化应用程序时提供依赖关系
angular.module('app',['ngTouch'])希望这将帮助您。请参阅此页

这里的问题是iScroll阻止了我的触摸事件。启动iScroll时,将{click:true}作为选项传入解决了问题。

这里的问题是iScroll阻止了我的触摸事件。在启动iScroll时,将{click:true}作为选项传入解决了该问题。

iOS为ng mouseover、ng click、ng mouseleave等创建单独的事件。 这意味着您的第一次点击将触发ng mouseover,第二次点击将触发ng click,您在元素外部的点击将触发ng mouseleave


不幸的是,我原以为ngTouch可以解决iOS造成的这个问题,但它没有。它仅在您使用css hover时修复了此问题,但在您使用java脚本鼠标事件(包括angular事件)时修复了此问题。

iOS为ng mouseover、ng click、ng MouseAve等创建单独的事件。 这意味着您的第一次点击将触发ng mouseover,第二次点击将触发ng click,您在元素外部的点击将触发ng mouseleave


不幸的是,我原以为ngTouch可以解决iOS造成的这个问题,但它没有。它仅在您使用css hover时修复了此问题,但在您使用java脚本鼠标事件(包括angular事件)时修复了此问题。

请检查您的css,然后它必须阻止链接。通常情况下,如果您使用响应式css,就会发生这种情况。这种情况也发生在bootstrap上,可能值得在Firefox上测试你的软件。我看到过AngularJS网页上的按钮根据浏览器的不同而工作或不工作,结果如下。火狐☑, 海豚☒, 铬☒, 歌剧☒, “互联网”☒. 其中,“互联网”是三星安卓平板电脑的默认浏览器。结果来自运行安卓4.1.1的三星Galaxy平板电脑GT-P3110。当大学在iPhone和索尼智能手机上做了一些类似的测试时,浏览器似乎是决定因素。为了澄清,工作意味着响应触摸屏上的点击。请检查你的css,然后它一定是阻止链接。通常情况下,如果您使用响应式css,就会发生这种情况。这种情况也发生在bootstrap上,可能值得在Firefox上测试你的软件。我看到过AngularJS网页上的按钮根据浏览器的不同而工作或不工作,结果如下。火狐☑, 海豚☒, 铬☒, 歌剧☒, “互联网”☒. 其中,“互联网”是三星安卓平板电脑的默认浏览器。结果来自运行安卓4.1.1的三星Galaxy平板电脑GT-P3110。当大学在iPhone和索尼智能手机上做了一些类似的测试时,浏览器似乎是决定因素。澄清一下,工作意味着对触摸屏上的点击做出回应。这不是回答,应该是评论。这不是回答,应该是评论。
scope.openFilm = function() {
    ...code to open the film and play
}