jQuery:ajax回调中的绑定事件不起作用

时间:2014-07-25 12:24:48

标签: jquery ajax callback bind mapbox

我使用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);

1 个答案:

答案 0 :(得分:0)

找到解决方案。我必须在函数中添加$("#thedivid").css('display', 'block');

这只是一个CSS问题。