2011-08-15 104 views
2

我有一個Google Map V3地圖。當用戶點擊一個確認提醒彈出窗口詢問他們是否要在那裏添加標記。如果他們說是,那麼標記被添加。代碼如下所示;用JQuery對話框將標記添加到Google地圖確認

編輯:上的jsfiddle標準JS工作版本: http://jsfiddle.net/sT8xU/4/

google.maps.event.addListener(map, 'click', function (event) { 
    if (event.latLng) { 
     var answer = confirm("Add marker?"); 
     if (answer) { 
       addMarker(map, event.latLng); 
     } 
    } 
}); 

這工作得很好。我現在試圖將這個標準警報轉換爲如下的JQuery對話框;但無法讓它工作。我想要的是使用JQuery UI對話框中的地圖和事件參數調用addMarker函數。

試圖上的jsfiddle http://jsfiddle.net/sT8xU/5/

得到這個工作
google.maps.event.addListener(map, 'click', function (event) { 
    if (event.latLng) { 
    $('#divConfirmDialog').html('Add marker?'); $('#divConfirmDialog').dialog('open'); 
    function showResultsTest(x) { 
     addMarker(map, event.latLng); 
     alert(x); 
    } 
    } 
}); 

$('#divConfirmDialog').dialog({ 
    buttons: { 
    "Add": function() { 
    x = "1"; 
    $(this).dialog("close"); 
    showResultsTest(x); 
    }, 
    "Don't add": function() { 
    $(this).dialog("close"); 
    } 
    } 
}); 

感謝

+0

你可以把這段代碼放在jsFiddle中,這樣我們可以幫助調試它嗎? – plexer

+0

下面是問題中的兩個JSFiddle鏈接更新:標準JS版本:http://jsfiddle.net/sT8xU/4/ JQuery UI版本:http://jsfiddle.net/sT8xU/5/ – Sivakanesh

回答

2

在這裏你去:http://jsfiddle.net/sT8xU/9/

我加var eventlatLng;全局的map VAR的聲明下。然後我在google.maps.event.addListener函數中設置它。然後在Add Marker按鈕功能中調用addMarker(map, eventlatLng);

var map; 
var eventlatLng; //new var 

$(document).ready(function() { 
    //no changes in document.ready 
}); 

google.maps.event.addListener(map, 'click', function(event) { 
    if (event.latLng) { 
     eventlatLng = event.latLng; // new var set here 
     $('#divConfirmDialog').html('Add marker?'); 
     $('#divConfirmDialog').dialog('open'); 
    } 
}); 

$('#divConfirmDialog').dialog({ 
    dialogClass: 'dialogShadow', 
    resizable: false, 
    height: 100, 
    autoOpen: false, 
    modal: true, 
    buttons: { 
     "Add Marker?": function() { 
      addMarker(map, eventlatLng); //added call to function with new var 
      $(this).dialog("close"); 
     }, 
     "Don't Add": function() { 
      $(this).dialog("close"); 
     } 
    } 
}); 
// rest of code unchanged 
+0

非常感謝。 – Sivakanesh

相關問題