2013-10-30 77 views
1

当我点击GPS-link时,我尝试在a标记中实现url。 但它不起作用!jQuery click()将href添加到a-tag

的jQuery:

$(document).ready(function(){ 

    /* add geolocation */ 
    $("a.target").click(function(){ 
    if(navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } 
    else 
    { 
     alert("Geolocation is not supported by this browser."); 
    } 
    } 
    function showPosition(pos){ 
    var lat = pos.coords.latitude; 
    var lon = pos.coords.longitude; 

    /* GPS link */ 
    $("a.target").attr("href", 
      "http://dev.market-locator.com/geolocation-lijst?distance[latitude]=" 
      + lat + "&distance[longitude]=" + lon 
      + "&distance[search_distance]=20&distance[search_units]=km"); 
    } 

}); 

HTML:

... 
<a class="target">Link</a> 
... 
+0

你的意思是你试图去通过'http://dev.market-locator ...'网址点击该链接? –

+0

是的,URL过滤了一个列表! – Tuxy

回答

1

jQuery代码应该是这样的:

$(document).ready(function(){ 

     /* add geolocation */ 
     $("a.target").click(function(){ 
     if(navigator.geolocation) { 
      showPosition(navigator.geolocation.getCurrentPosition()); 
     } 
     else 
     { 
      alert("Geolocation is not supported by this browser."); 
     } 
     }); 
    }); 

function showPosition(pos){ 
    var lat = pos.coords.latitude; 
    var lon = pos.coords.longitude; 

    /* GPS link */ 
    $("a.target").attr("href", "http://dev.market-locator.com/geolocation-lijst?distance[latitude]=" + lat + "&distance[longitude]=" + lon + "&distance[search_distance]=20&distance[search_units]=km"); 
    window.location.href = "http://dev.market-locator.com/geolocation-lijst?distance[latitude]=" + lat + "&distance[longitude]=" + lon + "&distance[search_distance]=20&distance[search_units]=km"; //add this line 
} 

功能应该被定义的.ready()功能之外。

+0

好的,谢谢你的作品! – Tuxy

+2

@Tuxy其作品接受这个答案。 –

+0

现在我有其他问题。当我点击时,该功能激活,第二次点击转到网址。是否有可能在1点击? – Tuxy

0

showPosition函数需要参数pos它不随叫随到接受。

也许,像这样的东西会工作?

showPosition(navigator.geolocation.getCurrentPosition()); 
+0

你好,答案1适合我。 Thx – Tuxy

0

首先,它的可能是因为你没有正确关闭您的点击功能:

$("a.test").click(function(){ 
    if(navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     alert("Geolocation is not supported by this browser."); 
    } 
    }); 
+0

第一个答案的作品,但它是正确的,我忘了关闭功能。 – Tuxy