Если есть более простой / лучший способ сделать это, скажите, пожалуйста (я только начинаю изучать JS, первый язык), но вот что я пытаюсь сделать:
У меня есть XML-файл, содержащий набор маркеров для карт Google, то есть:
<?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
});
Теперь я хотел бы, чтобы я щелкнул маркер карты, чтобы он вставил содержимое HTML из файла XML в 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: Узел использовался в документе, отличном от того, который его создал»
TIA за любую помощь!