0

我正在使用谷歌地图并希望显示多个标记。如果您输入一个城市的名称,地图会跳转到该位置,您会获得该地区所有公司的列表。通过按一个按钮,每个公司都将显示在地图上。标记会以一个小的延迟下降,所以我做了一个这样的函数:

$('#show_markers').click(function()
{
  $('.div_with_information').each(function(index)
  {
    var location = $(this);//includes multiple infomations like lat, lng, name, info...
    setTimeout(function()
    {
      set_marker(location);//function to create google marker with infobox ect.
    },100*index);
  });
});

这工作得很好。我需要延迟以获得漂亮的拖放动画并检查标记的坐标。但有时有很多标记要删除一个脚本需要很多时间。

我正在寻找的是完全停止“标记雨”的功能。

$('#stop_button').click(stop_drop);

我尝试了很多东西,但都没有如我所愿。我希望你有一些好的想法。

4

1 回答 1

0
var is_running = false;
var timeout;

$('#show_markers').click(function()
{
  if (is_running)
    return;

  is_running = true;

  var index = 0;
  var divs = $('.div_with_information');
  var num = divs.length;

  timeout = setTimeout(on_set_marker_event, 100);

  function on_set_marker_event()
  {
    var location = divs.eq(index);
    set_marker(location);

    index++;

    if (is_running && index < num)
       timeout = setTimeout(on_set_marker_event, 100);
  });
});

$('#stop_button').click(function()
{      
  is_running = false;
  clearTimeout(timeout);
});
于 2013-03-28T13:28:23.187 回答