2017-09-23 24 views
1

なぜonClickイベントがjsFiddle内で動作していないのか分かりません。コードはブラウザ上でうまくいきますが、jsFiddleに移植しようとすると、onClickイベントを発生させる能力が失われます。 HTMLの場合onClickがjsFiddle内で動作しない

<body> 

<button id="find-near-btn" onClick="getMylocation()"> 
    Find companies near me 
</button> 

<button id="mark-pos-btn" onClick="markMyPosition()"> 
    Mark my position 
</button> 

<div id="mymap"></div> 
<div id="output"></div> 

</body> 

JS:

function initmap(initialLat, initialLong){ 
    output.innerHTML += "<p>Initialized</p>"; 

    if(!initialLat || !initialLat.length){ 
     initialLat = 38.01693; 
    } 

    if(!initialLong || !initialLong.length){ 
    initialLong = -8.69475; 
    } 

    var mymap = this.mymap = L.map('mymap',{ 
    center: [initialLat, initialLong], 
    zoom: 15 
    }); 

    var osmUrl='http://tile.openstreetmap.org/{z}/{x}/{y}.png'; 
    var osmAttrib='Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors'; 

    L.tileLayer(osmUrl, osmAttrib).addTo(mymap); 
} 

function getMylocation(){ 

    output.innerHTML += "<p>Obtaining location.</p>"; 

    if(navigator.geolocation){ 

     navigator.geolocation.getCurrentPosition(function (position) { 

     var lat = position.coords.latitude; 
     var long = position.coords.longitude; 

     mymap.setView(new L.LatLng(lat, long), 15); 

    }, function (error) { 
     // Get information based on IP 
     getLatLongByIP(); 
    }); 
} 
} 

function getLatLongByIP() 
{ 
    $.get("http://ip-api.com/json", function(response) { 

    handleData(response.lat, response.lon); 
    }, "jsonp"); 
} 

function handleData(lat, long){ 
    mymap.setView(new L.LatLng(lat, long), 15); 
} 

function markMyPosition() 
{ 
    if(navigator.geolocation){ 

    navigator.geolocation.getCurrentPosition(function (position) { 

     var lat = position.coords.latitude; 
     var long = position.coords.longitude; 

     L.marker([lat, long]).addTo(mymap); 

    }, function (error) { 
     switch (error.code) { 
     case error.PERMISSION_DENIED: 
      output.innerHTML += "<p>User denied the request for Geolocation.</p>"; 
      break; 
     case error.POSITION_UNAVAILABLE: 
      output.innerHTML += "<p>Location information is unavailable.</p>"; 
      break; 
     case error.TIMEOUT: 
      output.innerHTML += "<p>The request to get user location timed out.</p>"; 
      break; 
     case error.UNKNOWN_ERROR: 
      output.innerHTML += "<p>An unknown error occurred.</p>"; 
      break; 
     } 
    }); 
} 
} 

initialLat = 38.01693; 
initialLong = -8.69475; 

initmap(initialLat, initialLong); 

フィドルはfound hereをすることができ

私の現在のコードは次のようです。いずれかのボタンをクリックすると何も得られません。どのように私はこの作品を作ることができますか?

+0

「ロードタイプ」で「ラップインボディなし」を選択します。 –

答えて

0

あなたのページの<body>タグ内にJSコードを変更する必要があります。 Javasciptパネルの右上にある小さなコグを使用し、の下にNo wrap - in <body>を選択します。 I already tested this and it works

関連する問題