0

Google マップで作業しており、複数のマーカーを表示したいと考えています。都市の名前を入力すると、地図がその場所にジャンプし、その地域のすべての企業のリストが表示されます。ボタンを押すと、すべての会社が地図上に表示されます。マーカーは少し遅れてドロップするので、次のような関数を作成しました。

$('#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 に答える