我使用jQuery的<body>
函数向.bind()
添加了一个mousedown事件,如下面的代码:
$('body')。bind('mousedown',function(){alert(1)});
它在页面的任何位置都能完美运行。但它会被(???)一个“map”div阻止。 (我不知道它是否足够精确地说“被阻止”,这个词出现了我的感觉)
并且函数.mousedown()
也不起作用:
$( '主体')鼠标按下(函数(){警报(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>
问题是它在“map”div之外工作,但是当我在地图上“mousedown”时,它不会提示信息。
但是,以下事件“mouseup”在“map”div内部/外部都无效:
$('body').bind('mouseup', function(){alert(1)});
$('body').mouseup(function(){alert(1)});
我想这是因为OpenLayers.Controls.DragPan()
函数与mousedown
事件做出反应。
那我该如何解决呢?让事件传递到<body>
?
答案 0 :(得分:0)
OpenLayers有自己的eventListener,因此您需要覆盖它们,例如
map.events.listeners.mousedown.unshift({
func: function(){
alert('hola muheres');
}
});