为什么这个javascript得到两次呼叫?

前端之家收集整理的这篇文章主要介绍了为什么这个javascript得到两次呼叫?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个按钮,我已经挂上了单击一个电话来检索用户位置,然后使用该位置进行另一个呼叫来检索附近位置的列表.由于某些原因,地理位置成功方法在第二次点击按钮时被调用两次.

所以我加载页面,点击按钮,允许使用我的位置,并且它将使一个ajax请求来获取附近的位置.这工作正常

我再次点击按钮,允许使用我的位置(再次),它将使一个ajax请求获取位置,等待〜2秒,然后使用相同的坐标进行另一个请求,而无需我允许.所以成功的方法必须被调用两次,但我不知道为什么.

$("#FindLocation").click(function () {
  myScript.findNearbyLocations(displayData,displayError);
});

这个点击功能没有被调用两次,我已经注释掉了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);
    });
  }
}

任何人看到我错了哪里?

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

<form id="form1" runat="server">
  <div>      
    <MyControls:Search ID="Search" runat="server" />
  </div>
</form>

用户控件(以及所有必需的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>

解决方法

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

猜你在找的JavaScript相关文章