2011-06-10 51 views
2

不显眼的JavaScript之前,我经手用下面的寄存器AJAX完整的事件:ASP.NET MVC 3 - 启用侵入式JavaScript,ajaxComplete触发一次,从此再也

Sys.Net.WebRequestManager.add_completedRequest(myHandler); 

此事件处理程序将触发每次一个Ajax请求做完了。我也有在$(文件)。就绪(一ajaxComplete事件绑定),来处理Ajax通过jQuery的独家电话:

$.ajaxComplete(function (e, xhr, settings) { 
    myHandler(xhr) 
}); 

这也是伟大工程。但是当我在ASP.NET MVC 3中启用unobstrusive javascript时,我得到了一个不同的行为。它在第一次ajax调用完成时触发,但在随后的ajax请求中,ajaxComplete事件再也不会触发。

现在,我知道您需要调用$ .validate.unobtrusive.parse()重建验证后,通过部分回发更新表单中的元素。有什么类似的,我需要做的,以确保ajaxComplete可以在随后的请求再次触发?我无法找到关于此的文档。


FYI:我已经包括了所有的jQuery的* .js文件库,以支持非侵入式JavaScript。我还将MicrosoftMvc * .js库包含在项目中以支持遗留代码。我希望能把所有东西都转换成直到我遇到这个问题。

回答

0

您需要实际上将ajaxComplete附加到我认为的元素上吗?

$('.info').ajaxComplete(function() { 
    var info = $(this); 
    info.html('Success!'); 
}); 

您应该只需要在其生命周期中将ajaxComplete附加到元素一次。