为什么这个javascript会被调用两次?

Bra*_*don 10 javascript jquery geolocation

我有一个按钮,我已经将onclick挂钩到一个调用来检索用户位置,然后使用该位置再次调用以检索附近位置的列表.由于某种原因,在第二次单击按钮时会调用地理定位成功方法两次.

所以我加载页面,单击按钮,允许使用我的位置,它将发出一个ajax请求来获取附近的位置.这很好用.

我再次单击该按钮,允许使用我的位置(再次),它将发出一个ajax请求获取位置,等待~2秒,然后使用相同的坐标发出另一个请求,而不允许我.所以成功方法必须被调用两次,但我不确定为什么.

$("#FindLocation").click(function () {
  myScript.findNearbyLocations(displayData, displayError);
});
Run Code Online (Sandbox Code Playgroud)

这个click函数没有被调用两次,我已经注释掉了displayData和displayError中的所有代码.

findNearbyLocations: function (onSuccess, onFailure) {
  if (navigator.geolocation) {
    browserSupportFlag = true;
    navigator.geolocation.getCurrentPosition(function (position) {
      alert('This is getting called twice except on the initial call.');
      myScript.findStores(position.coords.latitude, position.coords.longitude, onSuccess, onFailure);
    }, function () {
      onFailure(true);
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

谁知道我哪里出错了?

编辑:我不认为标记是问题.我只使用基本网页进行测试.目前没有造型或其他元素.

<form id="form1" runat="server">
  <div>      
    <MyControls:Search ID="Search" runat="server" />
  </div>
</form>
Run Code Online (Sandbox Code Playgroud)

和用户控件(以及所有必要的javascript包括)

<script type="text/javascript">
  $(document).ready(function () {
    $("#FindLocation").click(function () {
      myScript.findNearbyLocations(displayData, displayError);
    });
  });
</script>

<input type="button" id="FindLocation" value="Find Location" />
<div id="results">
</div>
Run Code Online (Sandbox Code Playgroud)

wos*_*sis 4

getCurrentPosition可能是您使用的任何客户端中的错误。在这种情况下,您可以简单地在调用 success 方法时设置一个标志,并且不允许findStores 第二次调用该函数。