Anb*_*lam 4 javascript google-maps dom-events
我猜Google地图没有长按/ taphold事件处理程序.下面的代码是实现这个的方法吗?
Anb*_*lam 11
我使用鼠标按下和鼠标按下事件监听器实现了长按功能.谢谢!!
var longpress = false;
google.maps.event.addListener(marker,'click', function (event) {
(longpress) ? console.log("Long Press") : console.log("Short Press");
});
google.maps.event.addListener(marker, 'mousedown', function(event){
start = new Date().getTime();
});
google.maps.event.addListener(marker, 'mouseup', function(event){
end = new Date().getTime();
longpress = (end - start < 500) ? false : true;
});
Run Code Online (Sandbox Code Playgroud)
我知道这是一个老帖子,但我遇到了同样的问题,我发现我认为比@Anbarasan Thangapalam建议的更好的解决方案.
解:
var mousedUp = false;
google.maps.event.addListener(marker, 'mousedown', function(event){
mousedUp = false;
setTimeout(function(){
if(mousedUp === false){
//do something if the mouse was still down
//after 500ms
}
}, 500);
});
google.maps.event.addListener(marker, 'mouseup', function(event){
mousedUp = true;
});
Run Code Online (Sandbox Code Playgroud)
我认为这种方法可能更好理解,代码行少,侦听器功能少.
要避免在拖动事件上触发超时功能,只需复制该mouseup功能并进行更改即可dragstart.像这样:
google.maps.event.addListener(marker, 'dragstart', function(event){
mousedUp = true;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3977 次 |
| 最近记录: |