jquery代码似乎一遍又一遍地执行

时间:2011-01-13 00:05:01

标签: jquery

我有以下jquery。数据对象可以是某些html(用于填充div),也可以是用于错误处理的json对象。

它似乎工作正常,除非我点击搜索(在搜索字段中显示错误数据)然后再次点击搜索,它似乎正在执行多次。 - 我必须关闭警报框两次。

$('#search-button').click(function () {
                var query = $("#search").val();
                $.ajax({
                    url: "/Event/SearchMap/",
                    type: 'POST',
                    data: ({ "query": query }),

                    success: function(data) {

                            if(data.success==false)
                            {
                                if(data.noresult)
                                {
                                    $('#span-query').text(query);
                                    alert('error');
                                }
                            }else
                            {
                                $('#event-list').empty();
                                $('#event-list').html(data);
                                load();
                            }
                     }

                });


            });

编辑:当我删除加载调用时,它现在表现良好。

那为什么会导致问题?

这是load()

function load() {
              if (GBrowserIsCompatible()) {
                  map = new GMap2(document.getElementById("map"));
                  map.addControl(new GLargeMapControl());
                  map.addControl(new GOverviewMapControl());
                  map.setCenter(new GLatLng(@ViewBag.Lat, @ViewBag.Lon), @ViewBag.Zoom);
                  map.enableDoubleClickZoom();
                  map.enableScrollWheelZoom ();
                  mgr = new MarkerManager(map, { trackMarkers: true });
                  window.setTimeout(setupOfficeMarkers, 0);
              }
          }

1 个答案:

答案 0 :(得分:1)

如果您不希望这样的行为,请添加$ .ajax()方法附加参数:async: false。这将阻止您的搜索请求的并行执行。

$.ajax({
  async: false,
  ...