Javascript 更改传单保持触摸计时
我正在使用一个用Ionic开发的移动应用程序的传单。我现在有一个功能,当你在地图上单击一次时,在指定的位置附近搜索某些项目Javascript 更改传单保持触摸计时,javascript,google-maps,ionic-framework,leaflet,Javascript,Google Maps,Ionic Framework,Leaflet,我正在使用一个用Ionic开发的移动应用程序的传单。我现在有一个功能,当你在地图上单击一次时,在指定的位置附近搜索某些项目 $rootScope.map.on('click', function(e) { if (APP_STATUS == ACTION_SEARCH) { positionClick = e.latlng; $scope.positionSearchClose = positionClick;
$rootScope.map.on('click', function(e) {
if (APP_STATUS == ACTION_SEARCH) {
positionClick = e.latlng;
$scope.positionSearchClose = positionClick;
$scope.userPosition.setLatLng(positionClick);
$scope.popupSearchRoutesClosed = $ionicPopup.show({
template: $scope.getTemplate(),
title: 'Buscando rutas',
scope: $scope,
});
$scope.getRoutesClose(positionClick, ACTION_SEARCH);
}
});
$scope.addButtons();
我想改变这一点,以便在用户短时间按住触摸键时进行搜索。我将“click”参数更改为“contextmenu”,实现了我想要的功能,但我发现保持时间太长。尽管传单文档描述ContextMenu事件“当用户按住一秒钟(也称为长按)时,手机上也会触发该事件”,但感觉“秒”是永恒的
有没有办法使上述功能仅在用户按住触摸键时触发,但指定按住的时间量?可能需要很长时间。但我已经找了几个小时了。我找到了解决办法,它可能会帮助任何来这里的人 在传单中,触按延迟在settimeout函数中声明为1000ms。它们可以编辑。 在传单.js中找到以下代码:
// simulate long hold but setting a timeout
this._holdTimeout = setTimeout(bind(function () {
if (this._isTapValid()) {
this._fireClick = false;
this._onUp();
this._simulateEvent('contextmenu', first);
}
}, this), 1000);
现在这里声明的1000(1秒)是计时器,您可以将1000更改为您喜欢的任何值…例如300或500
如果要动态更改触摸保持(轻触)计时器,
在传单.js开头创建一个变量
var contextMenuTime = 1000;
并在函数中手动应用变量
...
this._simulateEvent('contextmenu', first);
}
}, this), contextMenuTime);
现在,您可以通过更改变量值来控制抽头延迟