У меня есть этот код, и по какой-то причине моя функция $ .post срабатывает два раза подряд (для 'журнала / погоды') согласно Firebug.Он все еще делает это, когда я удаляю «if (navigator.geolocation)», однако, если я заменяю блок $ .post чем-то вроде console.log ('test'), он срабатывает только один раз.
Что еще более странно, когда я помещаю console.log ('test') перед функцией $ .post, тогда мое событие также запускается только один раз.Я предполагаю, что что-то странное происходит с JQuery.У кого-нибудь есть какие-нибудь идеи?
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(function(position)
{
$.post('journal/weather', {latitude: position.coords.latitude, longitude: position.coords.longitude}, function(result)
{
if (typeof(result.current.temp) != 'undefined')
{
global.temperature = parseInt(result.current.temp, 10);
global.temperature_slider.slider('value', global.temperature);
}
}, "json");
});
}
РЕДАКТИРОВАТЬ: Хорошо, все еще незнакомец, иногда он срабатывает дважды, иногда один раз.Как один и тот же фрагмент кода может давать разные результаты при каждом его выполнении?
РЕДАКТИРОВАТЬ 2: После некоторых экспериментов я думаю, что это ошибка в Firefox.Зачем?Потому что это происходит не только с моей страницей, но и с другими.Если я продолжу обновлять свою страницу, примерно первые 10 раз navigator.geolocation.getCurrentPosition запускает функцию обратного вызова.Тем не менее, в какой-то момент он прекращает это делать.И как только он достигнет этой точки, он не будет работать для любого другого веб-сайта, который использует getCurrentPosition.И эта проблема никогда не случается на Chrome или даже IE.Поиск в Google, я нашел это:
http://groups.google.com/group/mozilla.feedback.firefox/browse_thread/thread/fecc3fb0bad6d0b8