Angularjs 区分单击和按住并单击
我有一个可以拖放的html元素,也可以单击它来执行另一个操作,我想区分这两个操作,所以我想我应该使用ng mousedown和ng mouseup,并计算它们之间的时间差,根据这一点,我可以判断这是单击还是单击并按住拖动 所以元素看起来像这样: {{student.name} 我想做的事情大致如下:Angularjs 区分单击和按住并单击,angularjs,Angularjs,我有一个可以拖放的html元素,也可以单击它来执行另一个操作,我想区分这两个操作,所以我想我应该使用ng mousedown和ng mouseup,并计算它们之间的时间差,根据这一点,我可以判断这是单击还是单击并按住拖动 所以元素看起来像这样: {{student.name} 我想做的事情大致如下: var isMouseDown = false; var clickAndHoldTime = 0; $scope.mouseDownStudent
var isMouseDown = false;
var clickAndHoldTime = 0;
$scope.mouseDownStudent = function(){
isMouseDown = true;
while(isMouseDown){
clickAndHoldTime++;
}
}
$scope.mouseUpStudent = function(){
isMouseDown = false;
// If clickAndHoldTime > 100 ... it's a click
}
当然,这是行不通的,while循环也不会停止,我曾考虑过使用$interval,但不确定它是否适合这种情况。您的实现非常接近。您要做的是在mousedown上捕获当前时间,然后在mouseup上找到经过的时间。您可以通过捕获当前日期,然后在鼠标悬停后查找差异来完成此操作
let startTime = 0;
$scope.mouseDownStudent = function() {
// Capture current time
startTime = new Date();
}
$scope.mouseUpStudent = function() {
// Get current time
let currentTime = new Date();
// Get elapsed time in ms
let elapsedTime = currentTime - startTime;
if (elapsedTime > 100) { ... }
}