[英]Javascript 'callback' function not working
我使用Google Map API v3绘制路线。 但是对于某些路径,该路径未在地图上绘制。 所以我写了一个回调函数。 但是它不起作用,我的代码是
function putRoute(request,color,callback)
{
var color = color;
var request = request;
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
var polylineOptionsActual = {
strokeColor :color,
strokeOpacity: 1.0,
strokeWeight : 5,
};
var directionsRenderer = new google.maps.DirectionsRenderer;
directionsRenderer.setMap(map);
directionsRenderer.setOptions( { polylineOptions: polylineOptionsActual, suppressMarkers: true} );
directionsRenderer.setDirections(response);
}
});
if (typeof callback === "function") {
callback(request,color);
}
}
putRoute(request,color,function() {
});
尝试将功能putRoute重命名为
function putRoute(request,color){}
我猜这种情况不正确:
if (typeof callback === "function") {
我将其更改为
if (typeof callback != "undefined") {
Atleast,我确实知道这最后一个代码正在运行。
您也可以尝试以下一种方法:
if (callback instanceof Function) {
// do stuff;
}
您的回调例程在错误的位置。 它必须位于DirectionsService的回调函数中:
function putRoute(request,color,callback)
{
var color = color;
var request = request;
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
var polylineOptionsActual = {
strokeColor :color,
strokeOpacity: 1.0,
strokeWeight : 5,
};
var directionsRenderer = new google.maps.DirectionsRenderer;
directionsRenderer.setMap(map);
directionsRenderer.setOptions( { polylineOptions: polylineOptionsActual, suppressMarkers: true} );
directionsRenderer.setDirections(response);
// only execute callback on success
if (typeof callback === "function") {
callback(request,color);
}
} else {
alert("Directions request failed:" + status);
}
});
}
在将回调定义为时,我遇到了同样的问题:
function callback() {
...
}
然后我将其更改为:
callback = function() {
...
}
一切正常! 希望能帮助到你 ;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.