我添加了一个mousedown
事件来<body>
使用 jQuery 的.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>
?