我一直在寻找 AngularJS 的单击和双击事件处理,因为即使为我们的元素设置了 ng-dblclick 指令,AngularJS 也总是只触发 ng-click 事件。
以下是寻求解决方案的人的一些工作代码:
JS:
function MyController($scope) {
var waitingForSecondClick = false;
$scope.singleClickAction = function() {
executingDoubleClick = false;
if (waitingForSecondClick) {
waitingForSecondClick = false;
executingDoubleClick = true;
return $scope.doubleClickAction();
}
waitingForSecondClick = true;
setTimeout(function() {
waitingForSecondClick = false;
return singleClickOnlyAction();
}, 250); // delay
/*
* Code executed with single AND double-click goes here.
* ...
*/
var singleClickOnlyAction = function() {
if (executingDoubleClick) return;
/*
* Code executed ONLY with single-click goes here.
* ...
*/
}
}
$scope.doubleClickAction = function() {
/*
* Code executed ONLY with double-click goes here.
* ...
*/
};
}
HTML:
<div ng-controller="MyController">
<a href="#" ng-click="singleClickAction()">CLICK</a>
</div>
所以我的问题是(因为我是 AngularJS 新手):有经验的人可以写一些很好的指令来处理这两个事件吗?
在我看来,完美的方法是改变 ng-click、ng-dblclick 的行为并添加一些“ng-sglclick”指令来处理仅单击代码的代码。不知道这是否可能,但我会发现它对每个人都非常有用。
随时分享您的意见!