AJAX请求后的Javascript
本文关键字:Javascript 请求 AJAX | 更新日期: 2023-09-27 18:01:33
加载页面时,运行javascript中的commentsShowHideEffect
函数。当发出ajax请求时,方法commentsShowHideEffect()
中的所有指令都消失了。如何恢复这些指令或调用commentsShowHideEffect()
方法后再次ajax请求?
<script>
$(function () {
commentsShowHideEffect();
});
</script}
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="MessageButton" />
</Triggers>
<ContentTemplate>
<asp:Timer ID="RefreshTimer" runat="server" Interval="500" />
<asp:DataList ID="ChatDataList" runat="server" >
<ItemTemplate>
<td><asp:Label ID="lblRaterName" runat="server" Text='<%# Eval("Text")%>'></asp:Label></td>
</ItemTemplate>
</asp:DataList>
</ContentTemplate>
</asp:UpdatePanel>
你可以绑定Sys.WebForms.PageRequestManager endRequest事件,该事件将在ajax请求被更新面板完成后触发。
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args)
{
alert("After ajax call ended");
}
在jQuery范围外定义commentsShowHideEffect:
<script>
function commentsShowHideEffect() {
//do something
}
$(document).ready(function (){
commentsShowHideEffect();
});
</script>
我更喜欢使用文档。Ready语法,因为程序员更容易理解它是什么
您的问题中没有提到jQuery,也没有在标签中提到。但是你的代码显示你正在使用它,所以这里有一个相关文档页面的链接:
http://api.jquery.com/ajaxComplete/在你的情况下,这应该可以工作:
$(document).ajaxComplete(function(event,request, settings) {
commentsShowHideEffect();
});
注意,上面的代码将为每个ajax请求触发。如果你想要更多的控制,你应该对单个请求使用complete或success回调。