-1

Google マップのクリック イベントから特定の変数を保存したいと考えています。唯一の方法は、ある種の post Ajax 呼び出しを使用することだと思います。唯一の問題は、フォームをイベント内に統合する方法がわからないことです。

 google.maps.event.addListener(marker, 'click', (function(marker, i) 
{
    return function() 
    {
        infowindow.setContent("<a href="+SID[i].innerHTML+">" 
                              + lis[i].innerHTML+" </a?>"+"<br/>"
                              + "<a href='#' id='directions' >Get Directions </a>");

        infowindow.open(map, marker);                   
    }   
})
    (marker, i));

したがって、特定のマーカーをクリックすると、SID[i] になるマーカーの位置を保存したいと思います。後で同じページ内で、格納された変数を使用します。

ありがとう

4

1 に答える 1

1

ページがリロードされていない限り、次のいずれかを使用して変数を保存できます。

  • スコープ付き JS 変数
  • HTML5 ローカル ストレージ (永続的で、ページの更新時にも機能します)
  • jQuery データ属性

スコープ付き JS 変数の例

(function($)
{
    var storedMarker;

    $(function()
    {
        google.maps.event.addListener(marker, 'click', (function(marker, i)
        {
            storedMarker = marker;

            //continue with click logic
            ...
        })(marker, i));

        // Do something with stored marker
        $('.useStoredMarker').click(function(event)
        {
            if (storedMarker instanceof google.maps.Marker)
            {
                // storedMarker exists do something with it
            }
            else
            {
                // Marker doesnt exist show error or do nothing
            }
        });

    });

})(jQuery);

HTML 5 ローカル ストレージ

// Instead of storing variable in JS you can use this (HTML5 only)
localStorage.setItem("clickedMarker", marker);

// Retrieving it
var clickedMarker = localStorage.getItem("clickedMarker");

jQuery データ属性

// Assign the marker to a DOM elements data attribute
$('#clickedMarkers').data('marker', marker);

// Retrieving it
var clickedMarker = $('#clickedMarkers').data('marker');
于 2013-03-17T08:57:37.837 に答える