モバイル デバイス用の Google マップを使用したアプリケーションがあります。jquery モバイル スクリプトを使用します。ユーザーがマーカーをクリックすると、アイコンが変化する必要があります。変化が見られない人。スクリプトを制御するために、アイコンが変更されたかどうかを確認するために、2 つのアラートを一時的に組み込みました。アラートは適切な変更を示しますが、マップは示しません。誰が私が間違っているのか教えてもらえますか?
var mobileDemo = { 'center': '52.3702157,4.8951679', 'zoom': 10 };
var marker;
$('#gps_map').live('pageinit', function() {
demo.add('gps_map', function() {
$('#map_canvas_2').gmap({center: mobileDemo.center, zoom: mobileDemo.zoom, zoomControl: true, disableDefaultUI:true, callback: function(map) {
var self = this;
var markers = new Array();
downloadUrl("map_genxml.php?projectid=1&campid=23", function(data) {
var xml = data.responseXML;
var tekst=[];
var meetid=[];
var icoon=[];
markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
tekst[i] = markers[i].getAttribute("tekst");
meetid[i] = markers[i].getAttribute("meetid");
icoon[i] = markers[i].getAttribute("icoon");
var point = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
if (icoon[i]=="groen") {
var icon = 'http://www.mijnmonitoring.nl/icons/green-dot.png';
} else {
var icon = 'http://www.mijnmonitoring.nl/icons/grijs-dot.png';
}
marker = new google.maps.Marker({
position: point,
icon: icon,
bounds: true
});
bindInfoWindow(marker, tekst[i], meetid[i], i);
$('#map_canvas_2').gmap('addMarker',marker).click(function() {
});
}
});
}});
}).load('gps_map');
});
function bindInfoWindow(marker, info, meetid, i) {
google.maps.event.addListener(marker, 'click', function() {
alert(marker.getIcon());
marker.setIcon('http://www.mijnmonitoring.nl/icons/red-dot.png');
alert(marker.getIcon());
document.getElementById('meetpunt').innerHTML=info;
document.getElementById('formulier').style.display='block';
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {}
$('#gps_map').live('pageshow', function() {
demo.add('gps_map', function() { $('#map_canvas_2').gmap('refresh'); }).load('gps_map');
});