我是javascript的新手(或任何类型的网络开发,真的),并且无法追踪错误。基本上按下“Route(桌面版)”按钮here应该触发一个函数calcRoutePartOne(),它就是这样做的。
function calcRoutePartOne()
{
alert("calcRoutePartOne");
shortestTimeIndex = "undefined";
lowestTotalCost = "undefined";
shortestDistanceIndex = "undefined";
shortestDistance = "undefined";
alert("Alert B");
displayLoadingImage();
alert("Alert C");
var startText = document.getElementById("start").value;
alert(startText);
geocoder.geocode(
{
'address':startText
},
function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
start = results[0].geometry.location;
alert(start);
calcRoutePartTwo();
}
else
{
alert("Failed to geocode start address \n Error: " + status);
hideLoadingImage();
}
});
}
这个函数对我来说很好,所有的警报都应该按照它们的方式启动,但是然后不是调用calcRoutePartTwo()页面只是刷新[编辑:现在它有时会到达calcRoutePartTwo然后刷新,这也不是它应该做的事情。
特别令人费解的是,我之前已经使用过此代码了 - 目前我只是在进行重构,并在UI上工作,所以我不明白这是如何突然发生的。
我遇到问题的代码我有here。我还有以前工作的代码,除了用户界面here
之外几乎完全相同自从我开始使用jquery以来问题才开始,所以我想知道jquery中是否存在导致此行为的错误?该页面根本不应该刷新 - 在代码中,它应该在到达终点后重定向到谷歌
感谢。
编辑:这是可能违规的功能:
function calcRoutePartTwo()
{
alert("calcRoutePartTwo");
var endText = document.getElementById("end").value;
geocoder.geocode(
{
address: endText
},
function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
end = results[0].geometry.location;
console.log(end);
calcRoutePartThree();
}
else
{
alert("Failed to geocode end address \n Error: " + status);
hideLoadingImage();
}
});
}
或者问题可能,我猜,几乎可以在页面上的其他任何地方。我不知道。
答案 0 :(得分:5)
JavaScript不是“重新加载”网站,而是HTML代码中的form
。尝试将onsubmit="return false"
添加到form
代码。
答案 1 :(得分:1)
我没时间回答正确,因为我的妻子会越过,但是...如果你使用的是Firefox / Firebug,我觉得使用console.log("Message blah blah");
远比alert("Message blah blah");
烦恼我推荐,如果你不是!)。得走了......