我最近从IE7升级到IE10。我们在下面的第二行代码中收到错误无效的调用对象(if(init< markers.length))。
function loadMarkers() {
if (init < markers.length) {
var max = Math.min(init + 10, markers.length);
while (init < max) {
var lat = parseFloat(markers[init].getAttribute("lat"));
var lng = parseFloat(markers[init].getAttribute("lng"));
var point = new google.maps.LatLng(lat, lng);
var html = markers[init].getAttribute("html");
var propType = markers[init].getAttribute("propType");
switch (propType) {
case '1':
//markerColor = "Red";
markerColor = "FF0000";
break;
case '2':
//markerColor = "Yellow";
markerColor = "FFFF00";
break;
case '3':
//markerColor = "Green";
markerColor = "00FFBF";
break;
case '4':
//markerColor = "White";
markerColor = "FFFFFF";
break;
default:
//markerColor = "Red";
markerColor = "FF0000";
}
var marker = createMarker(point, html, init + 1, markerColor);
markerArray.push(marker);
if (init == 0) {
map.setCenter(marker.position, 13);
}
$("#results").append("<li onclick='selectMarker(" + init + ")'>" + html.substring(html.indexOf(">", html.indexOf(">", html.indexOf(">") + 1) + 1) + 1, html.indexOf("</a>") - 4) + "</li>");
init = init + 1;
$("#load").css({
'display': 'block'
});
$("#load").html("<b>Loading " + init + " of " + (markers.length) + "</b>");
}
if (init % 50 == 0) {
showAll();
}
window.setTimeout(loadMarkers, 50);
}
if (init >= markers.length) {
showAll();
$("#load").css({
'display': 'none'
});
}
}
我是新手,需要您的帮助才能解决此问题 请帮助我。
答案 0 :(得分:1)
您将标记声明为var markers;
,但随后假设标记具有长度:
if (init < markers.length)
标记可能不是数组,因为它没有这样定义。您应该将其定义为数组:
var markers = [];
答案 1 :(得分:0)
非常感谢你的指导。我将标记定义为数组,但它无法正常工作。所以我使用了数组变量,现在工作正常。
app.config(function ($interpolateProvider) {
$interpolateProvider.startSymbol('//');
$interpolateProvider.endSymbol('//');
});
var xx = markers.length; yy = markers [init];