我有以下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);
}
}
答案 0 :(得分:1)
如果您不希望这样的行为,请添加$ .ajax()方法附加参数:async: false
。这将阻止您的搜索请求的并行执行。
$.ajax({
async: false,
...