всплывающее окно листовки при наведении курсора удаляет событие щелчка

У меня есть несколько точек, нанесенных на мою карту с помощью geoJSON. Когда вы щелкаете точку, карта приближается к точке и выводит некоторую информацию в другом блоке. Когда я помещаю всплывающее окно в событие наведения мыши, моя функция щелчка больше не работает.

Вот моя функция щелчка:

function fillInfo(e) {
        var layer = e.target; 

        document.getElementById('infoBox').innerHTML = '<h2>' + layer.feature.properties.name + '</h2>' + '<h3>' +  layer.feature.properties.address + '</h3></p>'
        }
        //Variable to set zoom level on click
        var southLat = layer.feature.geometry.coordinates[0] + .022438;
        var southLong = layer.feature.geometry.coordinates[1] - .003235;

        var northLat = layer.feature.geometry.coordinates[0] - .022438;
        var northLong = layer.feature.geometry.coordinates[1] + .003235;

        map.fitBounds([[southLong, southLat], [northLong, northLat]]);


    }​

Вот моя функция наведения мыши:

        function highlightFeature(e) {
        var layer = e.target; 

        layer.bindPopup(layer.feature.properties.name)
            .openPopup();


        layer.setStyle({
            weight: 5,
            color: '#666',
            dashArray: '',
            fillOpacity: 0.7
        });



        if (!L.Browser.ie && !L.Browser.opera) {
            layer.bringToFront();
        }

    }

И вот я звоню им:

    function onEachFeature(feature, layer) {
        layer.on({
            click: fillInfo,
            mouseover: highlightFeature,
            mouseout: resetHighlight
        });
    }

Это заставляет всплывающее окно нормально работать при наведении курсора, но точка больше не реагирует на событие щелчка.


person user1410712    schedule 03.01.2013    source источник


Ответы (1)


Для всплывающего окна существует свойство смещения, по умолчанию установлено значение [0,6] , поэтому всплывающее окно закрывает точку (узел, содержащий белую стрелку вниз, больше, чем стрелка), и вы не сможете щелкнуть по значку. точка.

Установите параметр смещения всплывающего окна:

layer.bindPopup(layer.feature.properties.name,{offset:new L.Point(0,0)})
 .openPopup();

Вторым аргументом, предоставленным L.Point, является важная координата y, уменьшите этот аргумент, чтобы переместить всплывающее окно вверх.

person Dr.Molle    schedule 03.01.2013