gpt4 book ai didi

javascript - 谷歌地图 v3。带有 jquery 选项卡的信息窗口

转载 作者:行者123 更新时间:2023-11-30 06:44:42 25 4
gpt4 key购买 nike

我是 Gmaps 编程的初学者。

我想创建一个包含两个选项卡的信息窗口,其中一个只有信息,另一个有一些 HTML 形式(按钮和文本)。

http://gmaps-samples-v3.googlecode.com/svn/trunk/infowindow/tabs.html

var checkText = "Coordinates";

var content = [
'<div id="tabs">',
'<ul>',
'<li><a href="#tab_1"><span>One</span></a></li>',
'<li><a href="#tab_2"><span>Two</span></a></li>',
'</ul>',
'<div id="tab_1">',
'<p>Marker i:"</p>'+
'<form id='button'>'+
'<div>'+
'<input type='submit' value='Submit' />'+
'</div>'+
'</form>',
'</div>',
'<div id="tab_2">',
'<p>Info: '+checkText+'</p>',
'</div>',
'</div>'
].join('');

然后,事件监听器:

google.maps.event.addListener(infoWindow, 'domready', function() {
$("#tabs").tabs();
});

google.maps.event.addListener(marker, 'click', function(event) {
infoWindow.setContent(content);
infoWindow.open(map, marker);
});

选项卡和按钮都完美显示,但我不知道如何将其与操作相关联,例如:

marker.draggrable = true;  // letting the marker to move
checkText = marker.getPosition(); // changing the tab info whenever marker moves

我想这个问题与 jquery-tabs 无关,但与任何带有 html-form 的信息窗口有关。谢谢。

//------------------------

我会简化我的问题。

我准备了这个示例,您可以在其中找到信息窗口中的“按钮”: http://www.sipa.es/prueba_fer/index_prueba.html

如何将操作与该按钮相关联?例如,更改缩放比例、打开新窗口等。

谢谢

最佳答案

标记对象有drag events :

  • 拖动:当用户拖动标记时会重复触发此事件。
  • dragend:当用户停止拖动标记时会触发此事件。
  • draggable_changed:当标记的可拖动属性改变时触发该事件。
  • dragstart:当用户开始拖动标记时会触发此事件。

然后在事件触发时更新您的内容

google.maps.event.addListener(marker, 'dragend', function(event) {
checkText = this.getPosition();
content = [
'<div id="tabs">',
'<ul>',
'<li><a href="#tab_1"><span>One</span></a></li>',
'<li><a href="#tab_2"><span>Two</span></a></li>',
'</ul>',
'<div id="tab_1">',
'<p>Marker i:"</p>'+
'<form id="button">'+
'<div>'+
'<input type="submit" value="Submit" />'+
'</div>'+
'</form>',
'</div>',
'<div id="tab_2">',
'<p>Info: '+checkText+'</p>',
'</div>',
'</div>'
].join('');

});

更新:

好的,您需要确保在附加到 DOM 时捕获信息窗口中的元素。 Infowindows 有一个 domready 事件。我更新了您示例中的函数以显示这一点。另外,请记住回发将重置 map 。你没有说你是否需要回发,所以我使用 e.preventDefault();

取消了它
(function () {
var marker = new google.maps.Marker({
map: map,
draggable: false,
position: new google.maps.LatLng(40.30, -3.71)
});
var content = "<div id='tabs'>" +
"<form id='button'>" +
"<div>" +
"<input id='btn' type='submit' value='Submit'/>" +
"</div>" +
"</form>" +
"</div>";

google.maps.event.addListener(marker, 'click', function (event) {
infoWindow.setContent(content);
infoWindow.open(map, this);
map.setCenter(this.getPosition());

});

google.maps.event.addListener(infoWindow, 'domready', function (e) {
//attach the click event to the button.
document.forms.button.btn.onclick = function (e) {
e.preventDefault(); //cancels the post back.
var currentZoomLevel = map.getZoom();
map.setZoom(currentZoomLevel - 2); //zoom out two levels
};
});

})();

关于javascript - 谷歌地图 v3。带有 jquery 选项卡的信息窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7969805/

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