如何同时使用 jQuery $(document).ready 和 ASP.NET UpdatePanel?

Posted

技术标签:

【中文标题】如何同时使用 jQuery $(document).ready 和 ASP.NET UpdatePanel?【英文标题】:How do I use a jQuery $(document).ready and an ASP.NET UpdatePanel together? 【发布时间】:2010-12-17 13:08:05 【问题描述】:

我正在我页面的<head> 部分中使用 Javascipt:

<script type="text/javascript">
    $(document).ready(function() 
        $('dl.expander dd').expander
        (
               slicePoint: 50,    widow: 2,   expandEffect: 'show', userCollapseText: '[^]' 
        );
    );
</script>

第一次加载页面时效果很好;但是,当我单击 &lt;asp:updatepanel&gt; 内的 &lt;asp:button&gt; 时,页面会部分刷新,但不会再次调用 $(document).ready

这很重要,因为 $(document).ready 部分中的这个 Javascript 正在折叠并在页面上的段落列表(或 dl 的 class="expander")中添加一个“readmore”选项,其中大部分应该折叠默认情况下。

【问题讨论】:

【参考方案1】:

您需要向 AJAX 客户端 endRequest 事件添加一个处理程序。有关详细信息,请参阅下面的链接。当 ajax 引擎完成对服务器的请求时调用此“事件”,并且对于在更新面板内的内容上运行的任何 javascript 都是必需的。

http://www.asp.net/ajax/documentation/live/overview/AJAXClientEvents.aspx

http://msdn.microsoft.com/en-us/library/bb383810.aspx

<script type="text/javascript">
    $(function() 
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    );

    function EndRequestHandler(sender, args) 
        // code that you want to run when the request is complete
    
<script>

【讨论】:

我一直在寻找这么简单的解决方案很长时间了。迄今为止我找到的最简单的解决方案。

以上是关于如何同时使用 jQuery $(document).ready 和 ASP.NET UpdatePanel?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jquery ui 日期选择器中同时禁用周末和选定日期?

jquery如何实现点击按钮,按钮上面显示一个“+1”的提示

jquery $(document).ready() 与window.onload的区别

jquery $(document).ready() 与window.onload的区别

如何使用 jQuery 处理复选框的初始状态和更改?

jQuery DataTables:如何更改分页活动颜色?