Использование jquery ненавязчивой библиотеки ajax с ASP.NET MVC3 после нажатия ссылки ajax action и ответа (html данные) с сервера возвращается, он автоматически помещается в назначенный целевой #id. В моем случае эти данные также содержат элементы, для которых браузер будет получать изображения. Все, что я хочу сделать, - это вернуть эти данные, чтобы они были скрыты до тех пор, пока все изображения не будут загружены, показывая загрузочный div. По умолчанию loadelementid и длинные параметры ajax не будут вырезать его в моем случае, так как он не проверяет, загружены ли изображения, а div, у которого его содержимое заменено, содержит ajax.actionlink. Проблема не в том, что $ .load выполняется по какой-либо причине при попытке подключиться к событиям OnBegin, OnSuccess и т. Д. Для ответа ajax.ASP.NET MVC/Jquery Ненавязчивый Ajax, пытаясь проверить, загружен ли элемент Jquery после того, как данные html возвращены
.ColumnContainer
находится внутри #BodyContent
и содержит изображения, которые необходимо загрузить.
<a data-ajax="true" data-ajax-mode="replace" data-ajax-begin="OnBegin" data-ajax-success="OnSuccess" data-ajax-update="#ContentBody"
data-ajax-url="/Store/StoreContent/@Model.category/@(Model.PagingInfo.CurrentPage - 1)" href="/@Model.category/page/@(Model.PagingInfo.CurrentPage - 1)"> <img src="/Content/extremepc/leftarrow.png" /></a>
function OnBegin() {
$('.ColumnContainer').hide();
$('#LoadingLayer').css('display', 'inline-block');}
function OnSuccess(data) {
$('.ColumnContainer').hide();
$('#LoadingLayer').css('display', 'inline-block');
FinishIt();
}
function FinishIt() {
$('.ColumnContainer').load(function() { alert('This code does not execute :('); });
$('#LoadingLayer').css('display', 'none');
}
Я думал, что $ ('# element'). Load (function() {}) выполняет код только после завершения «элемента». Вы путаете с $ .load ('url', function) – LaserBeak