我的application.html.erb文件中具有以下标记:<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
最初它位于head
部分,这是我假设的Rails 5.2的默认设置。问题是它不会在我的assets / javascripts文件夹中加载JS文件。建议我将标签移动到<%= yield %>
部分之后但仍在body
内的某个位置。这工作正常,并且该文件夹中的JS加载正常。现在的问题是,我正在使用leaflet-rails
gem,而当javascript_include_tag
在body
中时,地图将不会加载。工作?
我的资产/javascripts/locations.js
var currentLocation = document.getElementById('coordinatesStore');
document.querySelector('.add-button').addEventListener('click', () => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(({ coords: { latitude, longitude }}) => {
currentLocation.value = latitude + ", " + longitude;
});
} else {
currentLocation.value = "Geolocation is not supported by this browser.";
}
});
答案 0 :(得分:2)
这里的问题是您试图将事件处理程序附加到尚不存在的元素上。解决方案是标准的:在头中 load 加载代码,但是将运行推迟到页面加载之前。
cred: {
nameValue: 'anonymous',
emailValue: 'anonymous@gmail.com',
passwordValue: 'anonymous121',
},
location: {
addressValue: 'anonymous address',
cityValue: 'anonymous',
stateValue: 'anonymous',
postalValue: 122133344,
},
card: {
cardName: 'anonymous',
cardNumber: 3243,
securityCode: 123,
expirationMonth: 7,
expirationYear: 2031,
},
(或类似的东西。我不知道javascript )