-1

我想存储来自谷歌地图点击事件的特定变量。我在想唯一的方法是使用某种类型的 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 回答