-2

我創建了一個事件監聽器,當用戶拖動一個標記但它不起作用時,它會執行一個函數,任何人都可以幫助我嗎?標記拖拽事件Google Maps API V3

這是事件監聽器

google.maps.event.addListener(marker, 'dragend', enviarParaASP(marker)); 

而且功能:

function enviarParaASP(marcador) { 
      coordenadaASalvar = { latitude: marcador.position.d, longitude: marcador.position.e }; 

      jQuery.ajax({ 
       url: 'GoogleMapsGeolocation.aspx/SalvaCoordenadas', 
       type: "POST", 
       data: JSON.stringify({'coord': coordenadaASalvar}), 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (msg) { alert("OK "); }, 
       failure: function (msg) { alert("Sorry!!! "); } 
      }); 

回答

5

你的語法不正確:

google.maps.event.addListener(marker, 'dragend', enviarParaASP(marker)); 

將運行的功能,並指定返回值作爲偵聽器函數(不是你想要的,特別是因爲函數沒有返回值,所以它會爲空)。

行應該是:

google.maps.event.addListener(marker, 'dragend', enviarParaASP); 

而且enviarParaASP應採取google.maps.MouseEvent作爲其參數。

+0

謝謝,我現在理解btw我發現了另一種方法來做我想做的事:P – LuccasMF

2

你的回調應該只是你的函數的引用,而不是調用:

google.maps.event.addListener(marker, 'dragend', enviarParaASP); 

通過調用該函數時,它只會在你的代碼中出現時纔會「觸發」,也就是你在試着的時候g設置聽衆。