2017-09-18 8 views
0

私はレール5を使用していますが、ファイルのassets/javascriptフォルダーに以下を実装しようとしています。しかし何らかの理由でそれはまったく動かない。私はコンテンツをaDOMContentLoadedハンドラでラップする必要があると推測していますが、それを行う方法がわかりません。レール付きDOMContentLoadedハンドラー5

DOMContentLoadedハンドラでそのファイルのjavacontentをどのようにラップすることができるかに関するアイデアはありますか?

var x = document.getElementById("demo"); 

function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 

function showPosition(position) { 
    x.innerHTML = "Latitude: " + position.coords.latitude + 
     "<br>Longitude: " + position.coords.longitude; 
} 

ようjQuery.readyとしてクロスブラウザ互換性の溶液を使用することが賢明であるかもしれないが

//= require rails-ujs 
//=require jquery 
//=require jquery_ujs 
//=require jquery.turbolinks 
//=require turbolinks-compatibility 
//=require turbolinks 
//= require underscore 
//= require gmaps/google 
//= require_tree . 

答えて

0
document.addEventListener("DOMContentLoaded", function(event) { 
    var x = document.getElementById("demo"); 

    function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
    } 

    function showPosition(position) { 
    x.innerHTML = "Latitude: " + position.coords.latitude + 
     "<br>Longitude: " + position.coords.longitude; 
    } 
}); 

をapplication.js。さらに

あなたはturbolinksは、ページコンテンツを置き換えるときDOMContentLoadedが発射されていないとして、あなたは( セバスティアンPalma'sの答えのように)代わりにその"turbolinks:load"イベントにフックする必要がありturbolinksを使用している場合。

+0

私はこの ''とそれが@maxで動作していません。 – Dev

関連する問題