Leaflet Mouse Click与Trackpad Single Touch的行为不同

时间:2015-03-23 17:23:50

标签: javascript jquery mouseevent leaflet

我遇到了一个非常烦人的错误,我希望有人可以帮助我。

当我使用单击我的Macbook触控板在Leaflet中创建弹出窗口时,它会打开并保持打开状态。

如果我点击触控板使用鼠标点击,我可以看到弹出窗口打开但是它会立即消失。

当它消失时似乎被完全删除,因为'leaflet-popup-pane'的div中的内容被删除了。

我已经对mouseup事件进行了一些搜索,以查看代码库中是否有任何奇怪的内容,但我没有遇到任何会导致此问题的内容。

有没有人对正在发生的事情有任何想法?

以下是相关代码:

$map = $("#map")
    .on(touch.event.start, onMapTouchStart);

function onMapTouchStart(e) {
    var latLng = map.containerPointToLatLng(touch.getPoint(e));
    displayAttributes(latLng);
}

function displayAttributes(latLng) {
  var coordinates = selectedProjector.toGround(map.latLngToImagePoint(latLng));
  $.ajax("GetFeatureAttributes", {
      data: { x: coordinates[0], y: coordinates[1] },
      success: function (results) {
          var c = coordSys.inverse(coordinates);

          var popupHTML = [];
          $.each(results, function (index) {
              var attributes = JSON.parse(results[index].attributes);

              var layer = referenceFeatureLayers[results[index].referenceCollectionId];
              popupHTML.push("<div class='AttrBlock'>");
              popupHTML.push("<div class='AttrTitle' style='color: " + layer.color + "'>" + layer.name + "</div>");
              for (var key in attributes) {
                  if (attributes.hasOwnProperty(key)) {
                      popupHTML.push("<div class='AttrItem'><span class='AttrKey'>" + key + ":</span> " + attributes[key] + "</div>");
                  }
               }
               popupHTML.push("</div>");
           });

           var icon = L.icon( { iconUrl: 'Images/MarkerSmall.png' } );
           var marker = L.marker(latLng, { icon: icon }).addTo(map);

           var options =
               {
                   maxWidth: 300,
                   minWidth: 250,
                   maxHeight: 300,
                   autoPan: true,
                   closeButton: true,
                   autoPanPadding: [45, 90]
               };
           marker.bindPopup(popupHTML.join(""), options).openPopup();
       }
   });
}

0 个答案:

没有答案