我使用Mapbox在地图上显示标记。文件json.php
从数据库中获取数据并输出json对象。我决定分离该文件,因为我还需要原始数据用于其他操作。在第一个测试版网站上,JSON对象只存储在map_data.js
中的变量中,在该变量中评估数据。现在,数据是通过AJAX获取的,但现在点击事件不再起作用了。当鼠标悬停标记时,会显示工具提示(工作!),当用户单击标记时,应显示详细信息。有什么问题?
(function($) {
$(document).ready(function() {
jQuery.get('json.php', function(data) {
build_map(jQuery.parseJSON(data));
});
var map = L.mapbox.map('map', 'xxxxxxxxxx', {
zoomControl: false
}).setView([51.2016, 6.6857], 9);
function build_map(data)
{
var geoJson = data;
// Set a custom icon on each marker based on feature properties
map.markerLayer.on('layeradd', function(e) {
var marker = e.layer,
feature = marker.feature;
marker.setIcon(L.icon(feature.properties.icon));
});
// Add features to the map
map.markerLayer.setGeoJSON(geoJson);
// Tooltip on mouseover
map.markerLayer.on('mouseover', function(e) {
e.layer.openPopup();
});
map.markerLayer.on('mouseout', function(e) {
e.layer.closePopup();
});
// Listen for individual marker clicks
map.markerLayer.on('click',function(e) {
// Force the popup closed.
e.layer.closePopup();
var feature = e.layer.feature;
var member = '(The DIV)';
document.getElementById('member').innerHTML = member;
});
}
});
})(window.jQuery);
答案 0 :(得分:0)
找到解决方案。我必须在函数中添加$("#thedivid").css('display', 'block');
。
这只是一个CSS问题。