JS
angular.module('my-app', []).controller('Ctrl', function ($scope, $timeout) {
var t;
$scope.click = function () {
t = $timeout(function () {
alert('click');
}, 1000);
};
$scope.dblclick = function () {
$timeout.cancel(t);
alert('dblclick');
};
});
模板
<div ng-app='my-app' ng-controller='Ctrl'>
<button ng-click='click()' ng-dblclick='dblclick()'>push</button>
</div>
的jsfiddle
答案 0 :(得分:6)
有趣的是,所以当你双击时,你只需要调用超时取消一次,但是在创建两个定时器之前计数两次点击。你只取消了一个。
这是一个固定的小提琴:
修改后的JS:
angular.module('my-app', [])
.controller('Ctrl', function ($scope, $timeout) {
var t=[];
$scope.click = function () {
t.push($timeout(function () {
alert('click');
}, 1000));
};
$scope.dblclick = function () {
for(var i=0;i<t.length;i++)
{
$timeout.cancel(t[i]);
}
t=[];
alert('dblclick');
};
});