我有一个名为的 xml 文件markers.xml
,其格式如下
<?xml version="1.0" encoding="UTF-8"?>
<marker>
<name></name>
<fulladdress></fulladdress>
<lat></lat>
<lng></lng>
<isSiteLocation></isSiteLocation>
</marker>
我尝试使用该文件的 jQuery 函数如下所示
MYMAP.placeMarkers = function(filename) {
$.get(filename,{}, function(xml) {
$(xml).find("marker").each(function() {
var name = $(this).find('name').text();
var address = $(this).find('address').text();
// create a new LatLng point for the marker
var lat = $(this).find('lat').text();
var lng = $(this).find('lng').text();
var isSiteLocation = $(this).find('isSiteLocation').text();
var markerIcon = "http://www.google.com/intl/en_us/mapfiles/ms/micons/" + (isSiteLocation) ? "blue-dot.png" : "red-dot.png";
var point = new google.maps.LatLng(parseFloat(lat),parseFloat(lng));
// extend the bounds to include the new point
MYMAP.bounds.extend(point);
// add the marker itself
var marker = new google.maps.Marker({
position: point,
map: MYMAP.map,
icon: markerIcon
});
// create the tooltip and its text
var infoWindow = new google.maps.InfoWindow();
var html='<b>'+name+'</b><br />'+address;
// add a listener to open the tooltip when a user clicks on one of the markers
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(MYMAP.map, marker);
});
});
// Fit the map around the markers we added:
MYMAP.map.fitBounds(MYMAP.bounds);
}, "xml");
}
它被一个 onclick 事件调用,它告诉它这里的 xml 文件名
$("#showmarkers").click(function(e) {
MYMAP.placeMarkers('markers.xml');
});
我的问题是,当MYMAP.placeMarkers
调用该函数时,javascript 永远不会进入成功函数。我使用 javascript 调试器跟踪它,看起来我的文件名被拒绝了。javascript、html 和 xml 文件位于我托管网站的同一目录中。
我正在尝试遵循此处的教程,该教程通过使用从已保存的 xml 文件中提取的数据填充带有标记的谷歌地图的过程。
在我问这个问题之前,我一直在做研究,我在这里发现了一个与我的非常相似的问题jQuery is not reading xml file
我遵循接受的答案并将大括号放在我的函数之前,并将“xml”放在右括号之前,但没有任何改变。控制台没有给我任何错误,我不确定出了什么问题。