Хорошо, это кажется смешным, и я знаю, ПОЧЕМУ это происходит технически, но должен быть способ обойти это!
Проблема заключается в следующем:
У меня есть объект javascriptчто после создания вы можете вызвать метод, и он отправит запрос ajax, и они вернут false.Код объекта находится в другом файле.
Вот объект:
function AjaxHandler(groupid, typeid, currentLocation, controllerUrl) {
this.groupId = groupid || 0;
this.typeId = typeid || 0;
this.href = currentLocation || '';
this.method = controllerUrl;
}
AjaxHandler.prototype.Submit = function () {
var queryString = this.href.split('?')[1];
var newHref = this.method;
if (queryString != null && queryString != undefined)
newHref = newHref + "?" + queryString
$.ajax({
type: "post",
url: newHref,
contentType: "application/x-www-form-urlencoded",
error: function (xhr, type, exception) {
console.log("Error occurred in AjaxHandler.Submit. Type: " + type + " Exception: " + exception);
}
});
return false;
};
Я вызываю этот метод в блоке скрипта на странице индекса.Он вызывается в jquery 'live', который настраивается во время .ready.Вот код .ready:
$(document).ready(function () {
SetShowMoreResultsFeatures();
$(".tabs a").live('click', function (e) {
var href = $(this).attr('href');
var queryString = href.split('?')[1];
var queryStringValue = '';
if (queryString != null)
queryStringValue = queryString.split('=')[1];
var tabHandler = new AjaxHandler(null, queryStringValue, href, '/home/GetCasesByType');
tabHandler.Submit();
//return false;
});
});
Как вы можете видеть, возвращаемое значение false в приведенном выше коде закомментировано, и в объекте AjaxHandler возникает возвращаемое значение false.Если я закомментирую тот, который находится в объекте, и раскомментирую тот, что в «готово», страница не мигает, и все в порядке.Если я оставлю это так, как есть, то страница начнет мигать.
Я исследовал это, и, хотя у людей есть похожие проблемы, кажется, что все окружает вызов ajax непосредственно в «живой» настройке.
Любое понимание того, как сделать эту работу правильно.Предполагается, что этот объект достаточно универсален, чтобы использовать его в любом случае, когда для нашей структуры вкладок необходим ajax, поэтому важно сохранять в вызове метода return false, а не live.