在我的手机上,当我点击/触摸某个元素时,会激活该范围内的某个进程,并且必须更新它才能正常工作,但是如果我想立即重复该事件,则不会使用jqLite / jQuery中的标准.on('click')
活页夹。
当你触摸容器时,两者之间会有一定的延迟。
var myApp = angular.module('myApp', ['ngTouch']);
myApp.controller('myCtrl', function MyCtrl($scope) {
$scope.name = 'Superhero';
$scope.counter = 0;
$scope.fire = function() {
$scope.counter++;
};
});
myApp.directive('directiveA', function() {
return {
restrict: 'A',
link : function(scope, element) {
scope.counterB = 0;
$(element).on('click', function() {
scope.counterB++;
scope.$digest();
});
}
};
});
DEMO:http://jsfiddle.net/HB7LU/21162/
在演示中,如果您触摸红色条的一侧然后触摸另一侧,无论您触摸它多快,它都会更新。
然而,在绿色栏上,如果您触摸左侧,然后触摸右侧,则在您继续触摸时不会更新。
红色栏正在使用ng-click指令,绿色栏正在点击活页夹上使用标准,然后从该范围链中运行摘要。
Angulars ngTouch模块导致此延迟。我想知道如何通过使用ngTouch来覆盖ngClick引起的延迟?
答案 0 :(得分:1)
如果查看ng-click的文档,可以看到点按/释放和触发点击事件之间有300毫秒的延迟,但ng-click事件不使用默认点击触发处理程序,因此没有延迟,但是当您使用手动click
事件绑定时,延迟即将出现。
更强大的替代默认ngClick设计 用于触摸屏设备。大多数移动浏览器等待大约300毫秒 在发送点击事件之前点击并释放之后。这个版本 立即处理它们,然后阻止以下单击事件 来自传播。