【发布时间】:2011-02-19 18:04:46
【问题描述】:
如果有更简单/更好的方法来做到这一点,请说出来(我刚刚开始学习 JS,第一语言),但这是我想要完成的目标:
我有一个包含一组谷歌地图标记的 XML 文件,即:
<?xml version="1.0" encoding="UTF-8"?>
<markers>
<marker name="Our Venue" lat="32.735873" lng="-117.255323" icon="wedding">
<div id="info"> <h2>Title</h2> <a href="http://site.com/link.html">Official web site</a> <p>Blah blah blah!</p> </div>
</marker>
...
我可以让 jQuery 加载所有信息并将其解析为 google.maps.Marker(s):
jQuery.get("map_data.xml", {}, function(data) {
jQuery(data).find("marker").each(function() {
var marker = jQuery(this);
var latlng = new google.maps.LatLng(parseFloat(marker.attr("lat")), parseFloat(marker.attr("lng")));
var title = marker.attr("name");
var icon = marker.attr("icon");
var markerContent = marker.contents();
var marker = new google.maps.Marker({
position: latlng,
map: map,
icon: crIconRegistry[icon],
title: title
});
现在,当我单击地图标记时,我希望它可以将 XML 文件中的 HTML 内容插入到页面上的 DIV 中,如下所示:
jQuery.jcps.insertFromMap = function (speed, target, markerContent) {
if (speed == 0) {
$(target).html(markerContent);
}
else {
$(target).fadeToggle(speed, function(){$(this).html(markerContent);}).fadeToggle(speed);
}
}
google.maps.event.addListener(marker, "click", function() {
jQuery.jcps.insertFromMap(crFaderSpeed, crDefaultPanel, markerContent);
});
但是,当我尝试此操作时(在 safari 中,尚未测试其他人),我收到以下错误:“WRONG_DOCUMENT_ERR: DOM Exception 4: A Node was used in a different document than the one”
TIA 寻求帮助!
【问题讨论】:
标签: javascript jquery xml dom google-maps