javascript - ngTouch 的 ngClick 阻止复选框和视频在大多数移动设备上工作

标签 javascript html angularjs

我目前正在试用 ngTouchng-click我的应用程序中的指令,它似乎破坏了大多数移动设备(Android/iOS)中的一些基本功能。包含在具有 ng-click 的 html 元素中的复选框和视频ngTouch 时指令不起作用作为依赖项包含在内。

这个 plunker 是 here 。至于查看问题,可以用 Google Chrome's Emulation 模拟问题的功能,我建议在 plunker's embededd view 上查看它.

ngTouch 时考虑此标记作为对移动设备的依赖项包含在内:

<div ng-controller="AppController"  ng-click="doSomethingAwesome()">
  <input type="checkbox" id="chk-1">
  <label for="chk-1">This checkbox and video does not work</label>

  <video width="320" height="240" controls>
    <source src="http://www.w3schools.com/tags/movie.mp4" type="video/mp4">
    <source src="http://www.w3schools.com/tags/movie.ogg" type="video/ogg">
    Your browser does not support the video tag.
  </video>
</div>

您必须点击视频或复选框几次(有时更多)才能选中复选框或播放视频。删除 ng-click指令或删除 ngTouch然而,应用程序中的依赖性解决了问题,但我想使用 ngTouch指令和服务。

如果有人能向我解释这一点或指出正确的方向,我们将不胜感激。

最佳答案

我通过创建另一个类似于原始 ngClick 指令的指令解决了这个问题,并在父元素上使用它,而不是使用 ngClick

UPDATED PLUNKER

指令

.directive('basicClick', function($parse, $rootScope) {
  return {
    compile: function(elem, attr) {
      var fn = $parse(attr.basicClick);
      return function(scope, elem) {
        elem.on('click', function(e) {
          fn(scope, {$event: e});
          scope.$apply();
        });
      };
    }
  };
});

关于javascript - ngTouch 的 ngClick 阻止复选框和视频在大多数移动设备上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25528046/

相关文章:

javascript - 无法让 jQuery 和 IE 成为 friend

javascript - Node-fetch 返回 Promise { <pending> } 而不是所需的数据

javascript - 重绘图像时何时清除 Canvas

html - 导航栏按钮间距位于彼此下方而不是并排

html - Angularjs + HTML鼠标悬停播放youtube

javascript - 在哈希/URL 片段中留出空间安全吗?

javascript - 免除表单的可点击行为

javascript - Angular Js - 本地存储

javascript - <a href> Post 请求总是返回错误的 URL Angular

javascript - Angular JS - ng-repeat 无法正常工作