2012-06-14 26 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