停止执行getCurrentPosition方法

时间:2013-04-11 14:50:20

标签: javascript jquery jquery-mobile google-maps-api-3 geolocation

我在Javascript中使用getCurrentPosition方法。我想实现一个停止执行方法的按钮" getCurrentPosition"当它被点击时。我尝试使用throw / try / catch块,但它似乎不起作用:


    try {
        $('#cancel').on("click", function() { 
            $.mobile.loading('hide'); 
            throw "stop";
        });
        navigator.geolocation.getCurrentPosition(foundLocation, noLocation, {enableHighAccuracy: true, timeout : 30000 }); 
    }
    catch ( er ) { alert(er); return false; }

有什么想法吗?它甚至可以在JS? 我有一个想法,但我不知道是否可以用JS方法触发超时,以便getCurrentPosition中断?

1 个答案:

答案 0 :(得分:11)

解决方案:

方法 navigator.geolocation.getCurrentPosition 是一个异步函数,所以不要指望像那样停止它。

您应该使用其他名为 navigator.geolocation.watchPosition 的功能。它的工作方式与getCurrentPosition相同,但在你的情况下使它有用的是另一个名为 navigator.geolocation.clearWatch 的函数,该函数用于停止watchPosition。

实施例

geoLoc = navigator.geolocation;
watchID = geoLoc.watchPosition(showLocation, errorHandler, options);
geoLoc.clearWatch(watchID);