【问题标题】:Javascript After AJAX RequestAJAX 请求后的 Javascript
【发布时间】:2013-02-13 03:01:55
【问题描述】:

页面加载后,javascript中的commentsShowHideEffect函数运行。当发出 ajax 请求时,方法 commentsShowHideEffect() 中的所有指令都消失了。 ajax请求后如何恢复这些指令或再次调用commentsShowHideEffect()方法?

<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>

【问题讨论】:

    标签: c# javascript asp.net ajax


    【解决方案1】:

    您可以绑定Sys.WebForms.PageRequestManager endRequest 事件,该事件将在更新面板完成 ajax 请求后触发。

    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    function EndRequestHandler(sender, args)
    {
         alert("After ajax call ended");
    }
    

    【讨论】:

    • 这就是我要找的。​​span>
    【解决方案2】:

    你没有在你的问题中提到 jQuery,也没有在标签中提到。 但是您的代码表明您正在使用它,所以这里有一个相关文档页面的链接:

    http://api.jquery.com/ajaxComplete/

    在你的情况下,这应该有效:

    $(document).ajaxComplete(function(event,request, settings) {
       commentsShowHideEffect();
    });
    

    请注意,上述内容将针对每个 ajax 请求触发。如果您想要更多控制权,您应该对各个请求使用完成或成功回调。

    【讨论】:

      【解决方案3】:

      在 jQuery 范围之外定义 cmetsShowHideEffect:

      <script>
          function commentsShowHideEffect() {
              //do something
          }
      
          $(document).ready(function (){
              commentsShowHideEffect();
          });
      </script>
      

      此外,我更喜欢使用 document.ready 语法,因为程序员更容易理解它是什么。

      【讨论】:

      • 但是当 AJAX 刷新 ContentTemplate 时,函数“cmetsShowHideEffect”中的所有非指令都不再起作用。提出请求后如何使它们再次工作?
      • 您能否澄清一下您的问题,您的说明是什么意思?
      猜你喜欢
      • 2011-10-07
      • 1970-01-01
      • 2015-05-25
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多