Firefox で適切な表示/非表示の動作を得るのに問題があります。サイトは Chrome/Safari で動作します。今のところIEについて心配する必要はありません。
サイトはこちら:
http://chrismcaleenan.com/map/?page_id=6
ユーザーが Chrome/Safari でマップ上の状態をマウスオーバー/マウスアウト/クリックしたときの望ましい動作を確認できます (インセットは無視してください - これはまだ進行中の作業です)。Firefox では、サイトはマウスオーバーを処理するように見えますが、マウスアウトやクリックは処理しません。
エラーは実際のCSSまたは他の場所にある可能性がありますが、関連するコードは次のとおりです。
//actions on poly mouseover
for (var i = 0; i < statesPoly.length; i++) {
(function(i){
google.maps.event.addListener(eval(statesPoly[i]), 'mouseover', function() {
this.setOptions({ strokeWeight: '2' });
$("#"+statesPoly[i]).addClass("highlight");
if(map.getZoom() <= 6)
$('#supp_data'+i).show();
});
})(i);
}
//actions on poly click
var zoomArray = new Array();
for (var i = 0; i < statesPoly.length; i++) {
zoomArray[i]=0;
(function(i){
google.maps.event.addListener(eval(statesPoly[i]), 'click', function() {
if (!zoomArray[i]) {
map.panTo(eval(stateCenters[i]));
map.setZoom(7);
polyArray[i].setOptions({ fillOpacity: '0' });
zoomArray[i] = 1;
$('#supp_data'+i).hide();
$('#inset-map').hide();
}
else {
map.panTo(myLatLng);
map.setZoom(6);
$('#inset-map').show();
//for some reason bug causes 11,12 to skip - adding manual reset
polyArray[i].setOptions({ fillOpacity: '.8' });
zoomArray[i] = 0;
polyArray[11].setOptions({ fillOpacity: '.8' });
zoomArray[11] = 0;
polyArray[12].setOptions({ fillOpacity: '.8' });
zoomArray[12] = 0;
for (n = 0; n < polyArray.length; n++) {
polyArray[n].setOptions({ fillOpacity: '.8' });
zoomArray[n] = 0;
}
}
});
})(i);
}
//actions on table mouseover
for (var i = 0; i < statesPoly.length; i++) {
(function(i){
google.maps.event.addDomListener(document.getElementById(statesPoly[i]), 'mouseover', function() {
$("#"+statesPoly[i]).addClass("highlight");
polyArray[i].setOptions({ strokeWeight: '2' });
if(map.getZoom() <= 6)
$('#supp_data'+i).show();
});
})(i);
}
//actions on table click
var zoomArray = new Array();
for (var i = 0; i < statesPoly.length; i++) {
zoomArray[i]=0;
(function(i){
google.maps.event.addDomListener(document.getElementById(statesPoly[i]), 'click', function() {
if (!zoomArray[i]) {
map.panTo(eval(stateCenters[i]));
map.setZoom(7);
polyArray[i].setOptions({ fillOpacity: '0' });
zoomArray[i] = 1;
$('#supp_data'+i).hide();
$('#inset-map').hide();
}
else {
map.panTo(myLatLng);
map.setZoom(6);
$('#inset-map').show();
//for some reason bug causes 11,12 to skip - adding manual reset
polyArray[i].setOptions({ fillOpacity: '.8' });
zoomArray[i] = 0;
polyArray[11].setOptions({ fillOpacity: '.8' });
zoomArray[11] = 0;
polyArray[12].setOptions({ fillOpacity: '.8' });
zoomArray[12] = 0;
for (n = 0; n < polyArray.length; n++) {
polyArray[n].setOptions({ fillOpacity: '.8' });
zoomArray[n] = 0;
}
}
});
})(i);
}
//actions on poly mouseout
for (var i = 0; i < statesPoly.length; i++) {
(function(i){
google.maps.event.addListener(eval(statesPoly[i]), 'mouseout', function() {
this.setOptions({ strokeWeight: '1' });
$("#"+statesPoly[i]).removeClass("highlight");
$('#supp_data'+i).hide();
});
})(i);
}
//actions on table mouseout
for (var i = 0; i < statesPoly.length; i++) {
(function(i){
google.maps.event.addDomListener(document.getElementById(statesPoly[i]), 'mouseout', function() {
$("#"+statesPoly[i]).removeClass("highlight");
polyArray[i].setOptions({ strokeWeight: '1' });
$('#supp_data'+i).hide();
});
})(i);
}