2017-10-11 5 views
-1

私はこれを正しく構成したと確信していますが、 "dragend"のイベントリスナーは起動していません。イベントをbounds_changedまたはcenter_changedに変更すると、最初のページの読み込み時にのみ発生します。なぜこのように行動しているのか、目立つものはありますか?"dragend"イベントリスナーはロード時にのみ発射する(一度)Google Maps

私は基本的に、マップが場所を変えられるたびにsearchStores()関数を呼び出して、ユーザーに反応するようにしたいだけです。

var map; 

    $(document).ready(function() { 

     var latlng = new google.maps.LatLng(36.2994410, -82.3409052); 
     var myOptions = { 
      zoom: 12, 
      center: latlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 

     // create the new map with options 
     map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 


     $("#btnSearch").click(function(){ 
      //Convert Address Into LatLng and Retrieve Address Near by 
      convertAddressToLatLng($("#txtAddress").val()); 
     }); 

     //send user to print/save view on click 
     $("#saveAs").click(function() { 
      window.location.href = "https://54.90.210.118/test.html?address=" + $("#txtAddress").val() + '&radius=' + $("#radiusO").val(); 
     }); 

     //WHAT IS GOING ON WITH THIS GUY??? 
     google.maps.event.addListener(map, "dragend", function() { 
      alert('map dragged'); 

     }); 
    }); 

    $(document).one('ready', function(){ 

     // Try HTML5 geolocation. 
     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(function(position) { 
       var pos = { 
        lat: position.coords.latitude, 
        lng: position.coords.longitude 
       }; 
       latlngloc = new google.maps.LatLng(pos.lat, pos.lng); 
       map.setCenter(pos); 
       $("#divStores").html(''); 
       searchStores(latlngloc); 
      }, function() { 
       handleLocationError(true, infoWindow, map.getCenter()); 
      }); 
     } else { 
      // Browser doesn't support Geolocation 
      handleLocationError(false, infoWindow, map.getCenter()); 
     } 
    }); 
+0

私はjQueryに慣れていませんが、なぜonReadyとone( 'ready')のドキュメントが必要ですか?彼らは同じことをしないのですか? –

+0

あなたは間違って何かを見ることができません。ここであなたのコードを使用してjsfiddleであり、それは正常に動作します - https://jsfiddle.net/g1s7n3tm/ –

+0

downvote?ハァッ。とにかく、それはまだ私の最後に働いていません。私はさまざまなブラウザなどを試してみました。それはジオロケーション機能と思われます。私がそれをコメントアウトすると、リスナーはうまく動作します。これまでのところ私は.one()を削除し、Geolocationをmain document.ready()に移動しました。私はまだ遊ぶためのオプションで遊んでいます。イベントリスナーが上書きされているか、地図が更新されている(つまり、リスナーがクリアされている)点を見つけることはできないようです。 – Lynxx

答えて

0

ありがとうございます!私は問題が、マップオブジェクトをクリアしてからそれを再作成する別の関数であることを発見しました。したがって、リスナーを削除してください。 混乱して申し訳ありません.Jfiddleで働いていたことを指摘してくれてありがとうございます。私はそれが私がそれをどう呼んでいたかと関係があると思った。 私はJavascriptには本当に新しく、少しずつ自分自身を教えなければなりません。すべての助けをありがとう! =)

関連する問題