当我从远程服务器请求信息时,我试图将我在谷歌地图中的光标更改为“等待”光标。这是来自国际服务器的天气信息,有时可能需要很长时间才能返回,所以我希望用户知道正在发生一些事情。
用户单击标记或边界框,然后我进行以下调用以获取数据:
map.setOptions({draggableCursor: "wait"});
$.ajax({
type:"GET",
dateType:"html",
url:url,
cache:false,
success:function(response){openInfoWindow(response, 1);},
error:function()
{
map.setOptions({draggableCursor: null});
displayMessage("badGet",0);
}
});;
function openInfoWindow(request, ignoreStatus)
{
map.setOptions({draggableCursor: null});
infoWindow = new InfoBox({maxWidth: 0, position: center, disableAutoPan: true});
}
我在 openInfoWindow 中做的第一件事是 map.setOptions({draggableCursor: null}),所以光标应该回到正常光标。之后,我打开一个带有结果的 infoWindow。
以下是我觉得很奇怪的地方:
1)如果我将光标留在标记上或边界框内,它永远不会切换到等待光标。如果我将它移出标记或边界框之外,它会按预期工作。
2) 如果光标位于 infoWindow 出现的位置上,则光标切换到等待光标,但直到我将光标移出 infoWindow 后才会切换回正常光标。
3) 当光标不在被点击的对象或信息窗口的位置上时,它不会从“等待”变为正常,直到光标移动。
我怀疑关于光标如何/何时更新,我缺少一些基本的东西。任何启示将不胜感激。
请注意,您可以在http://www.geoffschultz.org/weather_map_2.php通过选择 Weather Charts/BBC In-shore Forecast 和许多其他地方查看此行为。
——杰夫