gpt4 book ai didi

jquery - 在 jQuery Mobile 中将 longclick/taphold 与 Google map 结合使用?

转载 作者:行者123 更新时间:2023-12-03 22:24:55 26 4
gpt4 key购买 nike

我正在将 Google map 与 jQuery Mobile 结合使用。

我可以很容易地将点击事件绑定(bind)到 map ,但是有没有办法绑定(bind)长点击?我想在长按后向 map 添加一个标记。

我可以使用 jQuery Mobile 的“taphold”,它是专为长时间点击而设计的,但这并没有给我提供访问 map 属性的方法,例如点击的纬度:

    $('#map-canvas').bind('taphold', function(e) {
console.log('taphold');
e.stopImmediatePropagation();
return false;
} );

相反,我可以使用 Google map 点击监听器,但它会接收短点击,这使得 map 在移动设备上使用起来很繁琐:

google.maps.event.addListener($('#map-canvas'), 'click', function(event){  ...

我没有看到 Google Maps API V3 的“longclick”事件监听器:http://code.google.com/apis/maps/documentation/javascript/reference.html#Map

有什么想法吗?

感谢您的帮助。

最佳答案

对于任何寻找解决方案的人,我在 Google map 论坛上找到了这个,它确实有效。

function LongClick(map, length) {
this.length_ = length;
var me = this;
me.map_ = map;
google.maps.event.addListener(map, 'mousedown', function(e) { me.onMouseDown_(e) });
google.maps.event.addListener(map, 'mouseup', function(e) { me.onMouseUp_(e) });
}
LongClick.prototype.onMouseUp_ = function(e) {
var now = +new Date;
if (now - this.down_ > this.length_) {
google.maps.event.trigger(this.map_, 'longpress', e);
}
}
LongClick.prototype.onMouseDown_ = function() {
this.down_ = +new Date;
}
new LongClick(map, 300);
google.maps.event.addListener(map, 'longpress', function(event) {
do stuff...
}

关于jquery - 在 jQuery Mobile 中将 longclick/taphold 与 Google map 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6264853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com