次のコードのように、jQuery の関数を使用してmousedown
イベントを追加しました。<body>
.bind()
$('body').bind('mousedown', function(){alert(1)});
ページのどこでも完全に機能します。しかし、それは(???)「マップ」divによってブロックされます。(「ブロックされた」と言うほど正確かどうかはわかりませんが、私の気持ちで出てくる言葉です)
関数も機能.mousedown()
しません:
$('body').mousedown(function(){alert(1)});
以下は、OpenLayers を使用したマップ div です。
<script type='text/javascript'>
var map;
function init() {
var controls_array = [
new OpenLayers.Control.Navigation({}),
new OpenLayers.Control.PanZoomBar({}),
new OpenLayers.Control.LayerSwitcher(),
];
var mapOptions = {
controls: controls_array,
projection: new OpenLayers.Projection("EPSG:900913")
};
map = new OpenLayers.Map('map', mapOptions);
var googleLayer = new OpenLayers.Layer.Google(
'Google Map Layer',
{
numZoomLevels: 20,
isBaseLayer: true,
sphericalMercator: true,
projection: "EPSG:900913"
}
);
map.addLayer(googleLayer);
map.zoomToExtent(
new OpenLayers.Bounds(3235795.723665,493480.6015713,
3716431.757455,911132.5240634), true
);
}
</script>
<body onload='init();'>
<div id="map" style='width: 800px; height: 700px;'></div>
</body>
問題は、「マップ」divの外で機能することですがmousedown
、マップ上にいるときに警告メッセージが表示されません。
ただし、次のイベントmouseup
は、「マップ」div の内外に関係なく機能します。
$('body').bind('mouseup', function(){alert(1)});
$('body').mouseup(function(){alert(1)});
関数がイベントOpenLayers.Controls.DragPan()
に反応するためだと思います。mousedown
それで、それを修正するにはどうすればよいですか?イベントを<body>
?