2012-06-14 23 views
0

這從本網頁上的討論的延續:Geolocation Google Maps Links jQuery谷歌地圖URL參數(SADDR)鏈接不打開後HREF取代

我需要SADDR要通過navigator.geolocation設置,當用戶點擊鏈接。我可以通過下面的代碼實現這一點,但是在替換href之後,鏈接不起作用。如果我將創建的鏈接放到地址欄中,它會打開Goog​​le地圖並繪製正確的路線,但否則鏈接不起作用。

我認爲每次鏈接被按下時,href都會被替換。如何在腳本末尾打開鏈接?

編輯:鄧肯提供的解決方案,工作腳本現在顯示

$("a.geo").click(function(e) {    
     if (navigator && navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition($.proxy(getLoc, $(this))); 
      e.preventDefault(); 
     } 
     }); 

     function getLoc(position) {      
      var geoLat = position.coords.latitude; 
      var geoLon = position.coords.longitude; 
      document.location.href = "http://maps.google.com/maps?saddr=" + geoLat + "," + geoLon + "&daddr=35.662296,139.765854&dirflg=w&sensor=true"; 

     } 

回答

1

那麼是不是你真的想請將目前的頁面位置更新爲「http://maps.google.com/maps?saddr=」+ geoLat +「,」+ geoLon +「& DADDR = 35.662296,139.765854 & dirflg = W &傳感器=真正的」

而不是觸發來自這與Click事件處理程序中調用函數(複雜,遞歸),爲什麼不只是做click事件:

document.location.href = "http://maps.google.com/maps?saddr=" + geoLat + "," + geoLon + "&daddr=35.662296,139.765854&dirflg=w&sensor=true"; 
+0

如果您刪除它,腳本根本不會觸發,並且默認鏈接會觸發。將它重新添加,腳本觸發,用正確的URL替換href,但鏈接不會觸發。 – Ashkas

+0

還沒有意識到功能如何連接,當然新的回答 – duncan

+0

啊!乾杯,已更新我的帖子。 – Ashkas

1

嘗試改變

$(a.geo).trigger('click'); 

$("a.geo").trigger('click'); 
+0

唉沒有骰子。這也是一個錯誤,在我正在尋找解決方案的同時,複製了編輯過的代碼版本。我通常使用的版本有$(this)。上面編輯的代碼。 – Ashkas