页面加载后如何实现?

时间:2019-06-08 16:50:30

标签: javascript

我是Ruby on Rails的实习生,昨天我不得不使用Javascript做一些事情(我的JavaScript技能很熟练,我什至没有技能)。

我在项目中实现了当前位置功能,但我想用另一种方式... thig已经完成了,看看:

function geolocationSuccess(position) {
  var latitude = position.coords.latitude;
  var longitude = position.coords.longitude;

  var geocoder = new google.maps.Geocoder();
  var latlng = {lat: latitude, lng: longitude};

  geocoder.geocode({'location': latlng}, function(results, status) {
    if (status === google.maps.GeocoderStatus.OK) {
      if (results[0]){
        var user_address = results[0].formatted_address;
        document.getElementById("current_location").innerHTML = user_address;
      }else {
        console.log('No results found for these coords.');
      }
    }else {
      console.log('Geocoder failed due to: ' + status);
    }
  });
}

function geolocationError() {
  console.log("please enable location for this feature to work!");
}

$(document).on("ready page:ready", function() {
  $("#current-location").on("click", function(event) {
    event.preventDefault();

    if ("geolocation" in navigator) {
      navigator.geolocation.getCurrentPosition(geolocationSuccess, geolocationError);
    } else {
      alert("Geolocation not supported!");
    }
  });
});

好的,我知道这一切都发生在我单击带有Id =“ current-location”的按钮时,但是我希望页面加载时自动发生,该怎么办?

1 个答案:

答案 0 :(得分:2)

只需在$(document).ready(块内插入要执行的代码:

$(document).ready(function() {     
    if ("geolocation" in navigator) {
      navigator.geolocation.getCurrentPosition(geolocationSuccess, geolocationError);
    } else {
      alert("Geolocation not supported!");
    }
});

另一方面,由于event是关键字,因此建议命名功能变量event。将事件传递给函数的标准约定是使用e。例如:

$('#someId').on('click', function(e) {
   e.preventDefault();
   //do something
});