Javascript 每次只运行一次
首先让我解释一下。我在页面上有几个地址,我将它们放入一个数组中。然后我想检查这个数组,并用它的经度和纬度替换每个地址 问题是我的尝试只运行了一次Javascript 每次只运行一次,javascript,jquery,google-maps-api-3,Javascript,Jquery,Google Maps Api 3,首先让我解释一下。我在页面上有几个地址,我将它们放入一个数组中。然后我想检查这个数组,并用它的经度和纬度替换每个地址 问题是我的尝试只运行了一次 $(function () { var addr = 0; var shops = []; var addressPoint; var latlng = new google.maps.LatLng(38, -97); var myOptions = { zoom: 8, center: latlng, mapT
$(function () {
var addr = 0;
var shops = [];
var addressPoint;
var latlng = new google.maps.LatLng(38, -97);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
window.onload = function () {
var options = [];
$('.address').each(function () {
if (!$(this).is(":empty")) {
options.push($(this).text());
txt = $(this).text();
} else {}
});
alert(options);
$.each(options, function () {
var addr = ("'" + this + "'");
searchAddr(addr);
});
function searchAddr(addr) {
$('#map_canvas').gmap({
'callback': function () {
var self = this;
alert(addr);
self.search({
'address': addr
}, function (results, status) {
if (status === 'OK') {
addressPoint = results[0].geometry.location;
alert(addressPoint);
options = $.map(options, function () {
return results[0].geometry.location;
});
self.get('map').panTo(results[0].geometry.location);
alert(options);
return false;
}
});
}
});
}
};
}(jQuery));
你用网络嗅探器确认它只发射了一次吗?因为看起来您正在用
$.map
命令中的单个值替换列表中的每个值。如果将地址点放在不同的数组中,可能会有所帮助:
$(function () {
var addr = 0;
var shops = [];
var addressPoint;
var latlng = new google.maps.LatLng(38, -97);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var points = [];
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
window.onload = function () {
var options = [];
$('.address').each(function () {
if (!$(this).is(":empty")) {
options.push($(this).text());
txt = $(this).text();
} else {}
});
alert(options);
$.each(options, function () {
var addr = ("'" + this + "'");
searchAddr(addr);
});
function searchAddr(addr) {
$('#map_canvas').gmap({
'callback': function () {
var self = this;
alert(addr);
self.search({
'address': addr
}, function (results, status) {
if (status === 'OK') {
addressPoint = results[0].geometry.location;
alert(addressPoint);
points.push(addressPoint);
});
self.get('map').panTo(addressPoint);
alert(points);
return false;
}
});
}
});
}
};
}(jQuery));
你用网络嗅探器确认它只发射了一次吗?因为看起来您正在用
$.map
命令中的单个值替换列表中的每个值。如果将地址点放在不同的数组中,可能会有所帮助:
$(function () {
var addr = 0;
var shops = [];
var addressPoint;
var latlng = new google.maps.LatLng(38, -97);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var points = [];
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
window.onload = function () {
var options = [];
$('.address').each(function () {
if (!$(this).is(":empty")) {
options.push($(this).text());
txt = $(this).text();
} else {}
});
alert(options);
$.each(options, function () {
var addr = ("'" + this + "'");
searchAddr(addr);
});
function searchAddr(addr) {
$('#map_canvas').gmap({
'callback': function () {
var self = this;
alert(addr);
self.search({
'address': addr
}, function (results, status) {
if (status === 'OK') {
addressPoint = results[0].geometry.location;
alert(addressPoint);
points.push(addressPoint);
});
self.get('map').panTo(addressPoint);
alert(points);
return false;
}
});
}
});
}
};
}(jQuery));
尝试替换console.log(options)的警报(options),并告知控制台显示了什么(firefox中的firebug和chrome中的dev tools)
资源被解释为图像,但使用MIME类型text/html传输:http://maps.googleapis.com/maps/gen_204?ev=api_viewport&cad=src:apiv3". [Q,Q Ua:37.7654999999VA:-122.39669270000002,Q,Q Ua:37.76549999999VA:-122.39669270000002,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q]
然后资源被解释为图像,但使用MIME类型e传输
什么只运行一次?$。每个(选项,函数(){var addr=(“'”+this+“””);searchAddr(addr);})代码>它将运行“searchAddr”功能一次,并使原始数组中的每一项显示相同的值。尝试替换console.log(选项)的警报(选项),并告诉控制台显示什么(firefox中的firebug和chrome中的开发工具)资源解释为图像,但使用MIME类型text/html传输:"http://maps.googleapis.com/maps/gen_204?ev=api_viewport&cad=src:apiv3". [Q,Q Ua:37.7654999999VA:-122.39669270000002,Q,Q Ua:37.76549999999VA:-122.39669270000002,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q]
然后资源被解释为图像,但使用MIME类型e传输
什么只运行一次?$。每个(选项,函数(){var addr=(“'”+this+“”);searchAddr(addr);});
它将运行“searchAddr”功能一次,并使原始数组中的每一项显示相同的值。只需尝试您的代码,当它提醒points数组时,只有一个值。而且它只被提醒一次,因此它似乎只运行一次。我在控制台中看到的是资源被解释为I但使用MIME类型text/html传输的图像:http://maps.googleapis.com/maps/gen_204?ev=api_viewport&cad=src:apiv3".e
奇怪的是,它没有崩溃。但我设法修复了它,使用了与您类似的代码。感谢您刚刚尝试了您的代码,当它提醒points数组时,只有一个值。而且它只被提醒了一次,所以它似乎只运行了一次。我在控制台中看到的是资源被解释为Image,但tr使用MIME类型text/html进行翻译:http://maps.googleapis.com/maps/gen_204?ev=api_viewport&cad=src:apiv3“.e
奇怪的是它没有坏。但我设法修复了它,使用了与您类似的代码。谢谢