.ajaxStart和.ajaxStop由于某种奇怪的原因而没有触发
问题描述:
当我创建了一个ajax请求时,我在身体上附加了一个“Loading”类,这样我就可以显示一个进度动画... 由于某些原因,我看不出有什么提醒?.ajaxStart和.ajaxStop由于某种奇怪的原因而没有触发
function setLoadingPanel()
{
var timer;
var body = $("body");
alert("Set AJAX HOOKS...");
$("body").on({
ajaxStart: function()
{
alert("AJAX START");
//timer = setTimeout(function() { body.addClass("loading"); }, 50)
},
ajaxStop: function()
{
alert("AJAX STOP!!!");
//$(this).removeClass("loading");
//clearTimeout(timer);
}
});
}
我已经把警报试试看的挂钩被称为但是没有警报坡平出于某种原因。
下面是一个使用简单AJAX.ActionLink帮助我的Ajax请求:
@{
var ajaxDialogoptions = new AjaxOptions()
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "DialogContainer",
OnComplete = "OpenDialog('DialogContainer');"
};
}
@Ajax.ActionLink(Model.AddNewItemButtonTitle, Model.AddActionName, Model.AddActionController, Model.AddActionRoutValues, ajaxDialogoptions, new { Class = "btn btn-primary anti-align-rtl" })
这里是我的脚本包:
Bundle bundle = new Bundle("~/Scripts/jsRTL");
bundle.AddFile("~/Scripts/Common/jquery-1.9.1.min.js");
bundle.AddFile("~/Scripts/Common/jquery-ui-1.10.1.custom.min.js");
bundle.AddFile("~/Scripts/Common/jquery.unobtrusive-ajax.min.js");
bundle.AddFile("~/Scripts/Validator/jquery.validate.min.js");
bundle.AddFile("~/Scripts/Validator/jquery.validate.unobtrusive.min.js");
bundle.AddFile("~/Scripts/Globalize/globalize.js");
bundle.AddFile("~/Scripts/Globalize/globalize.culture.en-US.js");
bundle.AddFile("~/Scripts/Globalize/globalize.culture.he.js");
bundle.AddFile("~/Scripts/Globalize/globalize.culture.he-IL.js");
bundle.AddFile("~/Scripts/Bootstrap/bootstrap-rtl.js");
bundle.AddFile("~/Scripts/Common/Common.js");
答
尝试添加ajaxStart-和ajaxStop处理程序来记录这样的:
$(document).ajaxStart(function() {
alert("AJAX START");
//timer = setTimeout(function() { body.addClass("loading"); }, 50)
});
$(document).ajaxStop(function() {
alert("AJAX STOP!!!");
//$(this).removeClass("loading");
//clearTimeout(timer);
});
参见here:
在jQuery 1.8的,然而,.ajaxStart()方法只应附在文件上。
答
我注意到你正在使用jQuery 1.9。确保你已经升级了你的jquery.unobtrusive-ajax.min.js
,以便它与它兼容,因为ASP.NET MVC 4附带的初始版本不是依赖.live()
而不再存在。
其实你也是一样的:) ..它已经过时了@Philipp M对$(document)vs $(“body”)是正确的 – Mortalus 2013-03-15 10:49:09