main.js上的谷歌地图“a为空”(第1121行)

时间:2011-06-27 15:07:34

标签: jquery ajax google-maps

我正在从XML加载标记。我在$(document).ready()和ajax完成时启动了地图。我已经研究了这个问题,并且看到大部分时间都是因为在文档准备好之前加载地图而发生的。所以为什么我得到它?

当我在下面的代码中的console.log()时,我收到了完整的数组,但是地图没有显示完整相同的信息。

这是我的代码:

$(document).ready(function(){
        var myMarkers = new Array;  

        $.ajax({
        url: "tire-banks.xml",
        dataType: ($.browser.msie) ? "text" : "xml",
        async: false,
        success: function(data){
                                var xml;    
                                if (typeof data == "string") {
                                   xml = new ActiveXObject("Microsoft.XMLDOM");
                                  // xml.async = false;
                                   xml.loadXML(data);
                                } else {
                                   xml = data;
                                }

                                $(xml).find("location").each(function(){
                                    var locAddress = $(this).find("city").text() + "," + $(this).find("state").text() ;
                                    var cc = $(this).find("cc").text();
                                    var bcc; 
                                    if ($(this).find("bcc")){ 
                                        bcc = $(this).find("bcc").text();
                                        }else{
                                        bcc = " - ";
                                        }
                                    var vendor =$(this).find("vendor").text();
                                    var hours = $(this).find("hours").text();
                                    var HTMLString =  "<div><h3>" + locAddress + "</h3>Vendor: " + vendor + "<br />CC#: " + cc + "<br />Bulk CC#: " + bcc + "<br />Hours: " + hours + "</div>" ;

                                    myMarkers.push({ address: locAddress, html: HTMLString});   
                                });

                                },//END SUCCSESS
        error: function(){
        },
        complete: function(){
            console.log(myMarkers);//returns correct information
            $("#map").gMap({ markers: myMarkers, address: "United States", zoom: 4 });//incomplete data and generates a is null error in firebug
        }
    });//END AJAX CALL
    });

2 个答案:

答案 0 :(得分:5)

我收到此错误的唯一一次是,如果您正在调用地图功能的div在页面上不存在。

答案 1 :(得分:-1)

当您在自己的代码中出现javascript错误时,通常会发生此错误。除了:

之外,没有任何明显的东西从你提供的内容中跳出来
var myMarkers = new Array;  

真的?应该是

var myMarkers = new Array(); 

或(首选)

var myMarkers = [];