我基本上是在尝试在 AJAX 成功响应中调用 AJAX 之外的函数。
为了更好地解释这一点,这就是我所拥有的。
这是两个函数:
function watchCurrentPosition() {
var positionTimer = navigator.geolocation.watchPosition(function(position) {
setMarkerPosition(userLocation, position);
map.panTo(new google.maps.LatLng(position.coords.latitude, position.coords.longitude));
});
}
function clearmyWatch() {
navigator.geolocation.clearWatch(positionTimer);
}
其中一个持续监视用户位置,另一个“应该”停止监视。
这就是我在 AJAX 中调用 clearmyWatch();
函数的方式:
$.ajax({
type:"post",
url:"TEST.PHP",
datatype:"html",
success:function(data)
{
clearmyWatch();
}
});
但是,这不起作用,watchCurrentPosition();
不断运行,并且我的控制台中也出现错误。
我收到的错误是这样的:
ReferenceError: positionTimer is not defined
有人可以就这个问题提出建议吗?
提前致谢。
最佳答案
您需要定义positionTimer
在 function watchCurrentPosition()
之外的全局范围内像:
var positionTimer = null;
function watchCurrentPosition() {
positionTimer = navigator.geolocation.watchPosition(function(position) {
setMarkerPosition(userLocation, position);
map.panTo(new google.maps.LatLng(position.coords.latitude, position.coords.longitude));
});
}
function clearmyWatch() {
if(positionTimer)
navigator.geolocation.clearWatch(positionTimer);
}
关于javascript - 在 AJAX 成功响应中调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40419732/