【发布时间】:2012-02-22 14:03:49
【问题描述】:
在 ASP.NET MVC3 中使用 jquery unobtrusive ajax 库,在单击 ajax actionlink 后,当从服务器返回响应(html 数据)时,它会自动放入指定的目标 #id。在我的情况下,这些数据还包含浏览器将获取图像的元素。我要做的就是一旦返回此数据,将其隐藏,直到加载所有图像,同时显示加载 div。在我的情况下,默认的 loadingelementid 和 duration ajax 选项不会削减它,因为它不检查图像是否已加载,并且替换其内容的 div 包含 ajax.actionlink。问题是在尝试挂钩到 ajax 响应的 OnBegin、OnSuccess 等事件时,由于某种原因没有执行 $.load。
.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');
}
【问题讨论】:
标签: javascript ajax asp.net-mvc unobtrusive-javascript