我是一個JavaScript的新手(或任何形式的網頁開發,真的),並無法追查一個錯誤。基本上按下「路由(桌面版本)」按鈕here應該觸發一個函數calcRoutePartOne(),它可以執行此操作。JavaScript刷新頁面,我不知道爲什麼
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。我也有以前的工作代碼,這是幾乎相同除了UI,here
,因爲我開始使用jQuery的問題纔開始,所以我不知道是否有一些錯誤的jQuery導致這種行爲?任何時候頁面都不應該刷新 - 如代碼所示,在到達目的地後它應該重定向到google
謝謝。
編輯:這是可能違規的功能:
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();
}
});
}
或者問題可能,我想,是幾乎所有地方都在頁面上無論是。我只是不知道。
爲了解決這個問題,在代碼中加入'$('form')。submit(function(e){e.preventDefault()})'。 – 2012-03-17 09:54:49
GAH!當然就是這樣。現在很明顯,我明白了!謝謝! – 2012-03-17 09:56:16
@Diarmund:因爲你是新來的stackoverflow,不要忘記接受一個複選標記的答案:) – Amberlamps 2012-03-17 10:01:28