我在页面中有很多Ajax指标。现在我用
$(document).ajaxStart(function() {
$('#ajaxBusyIndicator_<%=partido.PartidoId.ToString()%>').css({ display: "inline" });
}).ajaxStop(function() {
$('#ajaxBusyIndicator_<%=partido.PartidoId.ToString()%>').hide();
});
这个问题是我得到了所有指示器以显示任何方式只显示一个?
我使用asp.net mvc
更新:问题是如何在$(文件).ajaxStart(function(){知道要显示的指标
答案 0 :(得分:2)
由于您使用的是Asp.net MVC,因此您应该使用AjaxOptions对象来指定在请求启动/完成/成功/失败时将调用的函数。在这些功能中,您可以显示/隐藏指示器。
我们这样做(使用OnBegin / OnComplete启用/禁用“加载”指示符):
<%= Ajax.ActionLink(..., new AjaxOptions { ...,
UpdateTargetId = 'blabla',
OnBegin = "msg_activate",
OnComplete = "msg_hide",
OnSuccess = "funcOnSuccess",
OnFailure = "funcOnFailure" })
%>
然后在你的msg_activate / msg_hide里面你可以得到这样的东西:
function msg_activate(response) {
$('#ajaxBusyIndicator_<%=partido.PartidoId.ToString()%>').css({ display: "inline" });
}
function msg_hide() {
$('#ajaxBusyIndicator_<%=partido.PartidoId.ToString()%>').hide();
}
编辑:您也可以使用jQuery,但前提是您正在进行ajax request with jQuery。在这种情况下,您可以使用 beforeSend ,完成,成功和错误选项。只需查看examples。
答案 1 :(得分:1)
我认为针对该页面上发出的每个ajax请求都会引发jquery ajaxStart事件。您的代码正在做的是将多个事件处理程序附加到同一事件,并且对于每个ajax请求,将调用所有处理程序。
我认为你必须自己处理这些事件,你不能使用ajaStart。
答案 2 :(得分:0)
对多个项目运行的唯一方法是,如果您有多个具有相同ID的项目。
你的“&lt;%= partido.PartidoId.ToString()%&gt;”是否有可能是不是变成了正确的id,而是按字面解释?
如果您可以发布链接或某些代码来帮助我们了解正在发生的事情,那将会很有帮助。