0

店舗ロケータを作成しようとしていますが、ドロップダウン メニューに問題があります。たとえば、ユーザーから店舗までの距離のドロップダウン メニューが必要でした。たとえば、1 マイル、3 マイル、10 マイルなどですが、できません。これらの場所を表示する機能を実行するためのドロップダウンメニューを取得します たとえば、ここで見たいくつかの例を試しました

ドロップダウンから JavaScript 関数を呼び出す

しかし、実行しようとしているコードは次のとおりです。

function list() {
  document.getElementById("myList").onchange = function() {
    var sheet=document.getElementById("myList").value;

    if(sheet == "one"){
      showPosition();
    }
    else if(sheet == "two"){
      showPosition2();
    }
    else if(sheet = "three"){
    }
    else{
    }
    return false
  };
}
window.onload = list;

メニューの最初のオプションを選択したときに実行する機能は次のとおりです。

function showPosition(position) {
  var locations = [
  ['store1', -2.063150, 52.516503, 4],
  ['store2', -2.064824, 52.518436, 5],
  ['store3', -2.068214, 52.519898, 3],
  ['store4', -2.068558, 52.512769, 2],
  ['store5', -2.070875, 52.510758, 1]
  ];

  var lon1 = position.coords.longitude* 0.0174532925;
  var lat1 = position.coords.latitude * 0.0174532925;
  var i = 0;

  while (i < locations.length)
  {
    x.innerHTML+= "<br>Distance " + calcDist(lon1, lat1, locations[i][1]*0.0174532925, locations[i][2]* 0.0174532925);
    i++;
  }     
}   
function calcDist(lon1, lat1, lon2, lat2)
{
  return Math.acos(Math.sin(lat1)*Math.sin(lat2) + 
    Math.cos(lat1)*Math.cos(lat2) *
    Math.cos(lon2-lon1)) * 3958;    
}

そして、私が使用しているメニューは次のとおりです。

<ul id="dropdown">
<li> Choose theme
<ul> 
    <li id="stylesheet1" > <a href="#"> Default </a></li>
    <li id="stylesheet2" > <a href="#"> Theme 1 </a></li>
    <li id="stylesheet3" > <a href="#"> Theme 2 </a></li>
    <li id="stylesheet4" > <a href="#"> Theme 3 </a></li>

</ul>
</li>
</ul> 
4

1 に答える 1

0

コードを見ると、大きなエラーが 1 つあります。

window.onload = list;に変更window.onload = list();


デモ- パラメータの受け渡しを示します

var testPosition = {
        coords: {
            longitude: 1,
            latitude: 1
        }
    }

showPosition(testPosition);
于 2013-09-26T08:41:45.827 に答える