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)
getCurrentPosition可能是您使用的任何客户端中的错误。在这种情况下,您可以简单地在调用 success 方法时设置一个标志,并且不允许findStores 第二次调用该函数。
| 归档时间: |
|
| 查看次数: |
14928 次 |
| 最近记录: |