mousemove在开放的图层上

时间:2012-06-13 05:42:38

标签: jquery openlayers

有人知道如何在openlayers中使用这个onmousemove事件吗?

$('#map')[0].onmousemove = (function() {
    var onmousestop = function() {
        $('#tooltip').fadeIn(500);
    }, thread;

    return function() {
        $('#tooltip')
            .css('top', e.pageY + offsetY)
            .css('left', e.pageX + offsetX);
        $('#coor').val(e.pageX + ' - ' + e.pageY);
        $('#tooltip').fadeOut(500);
        clearTimeout(thread);
        thread = setTimeout(onmousestop, 500);
    };
})();

我想将上面的代码添加为我的开放图层上的事件。 我在这里有一个有效的例子。

map.events.register('mouseout', map, function (e) {
    $('#tooltip').remove();
});

1 个答案:

答案 0 :(得分:3)

OL中的地图对象支持多种类型的事件。

这是列表(http://dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/OpenLayers/Map-js.html

preaddlayer ==> triggered before a layer has been added.  
addlayer ==> triggered after a layer has been added. 
preremovelayer ==> triggered before a layer has been removed.  
removelayer ==> triggered after a layer has been removed. 
changelayer ==> triggered after a layer name change, order change, opacity change, params change, visibility change (due to ==> resolution thresholds) or attribution change (due to extent change).  
movestart ==> triggered after the start of a drag, pan, or zoom
move ==> triggered after each drag, pan, or zoom
moveend ==> triggered after a drag, pan, or zoom completes
zoomend ==> triggered after a zoom completes
mouseover ==> triggered after mouseover the map
mouseout ==> triggered after mouseout the map
mousemove ==> triggered after mousemove the map
changebaselayer ==> triggered after the base layer changes

为什么你不能用这样的事情来使用这些事件:

map.events.register('move', map, function (e) {
    $('#tooltip')
            .css('top', e.pageY + offsetY)
            .css('left', e.pageX + offsetX);
    $('#coor').val(e.pageX + ' - ' + e.pageY);
});

map.events.register('movestart', map, function (e) {
    $('#tooltip').fadeIn(500);
});

map.events.register('moveend', map, function (e) {
    $('#tooltip').fadeOut(500);
});