jQuery 折叠式在 asp.Net 回发后未重新启动



我正在启动一个jquery手风琴:

$(document).ready(function(){
   $('#accordion').accordion();
});

问题是这是一个 .asp.NET 应用程序,如果页面触发回发会破坏手风琴。如何在回发时重新启动手风琴?

抱歉,我不是 asp.NET 方面的专家,也很抱歉我无法为您提供该示例的链接,这是因为它是一个受密码保护的应用程序。

谢谢。

您需要在

回发后使用 UpdatePanel 函数重新启动手风琴,如下所示:

<script type="text/javascript"> 
$(document).ready(function(){
    var prm = Sys.WebForms.PageRequestManager.getInstance();    
        prm.add_initializeRequest(InitializeRequest);
        prm.add_endRequest(EndRequest);
   // on page ready first init of your accordion
   $('#accordion').accordion();
});

function InitializeRequest(sender, args) {      
}
function EndRequest(sender, args) {
     // after the UpdatePanel finish the render from ajax call
     //  and the DOM is ready, re-initilize the accordion
     $('#accordion').accordion();
}
</script>

相对:
Asp.Net Gridview 中的 UpdatePanel Jquery DatePicker
ASP.Net:需要在更新面板加载完成
时运行javascript如何让客户端脚本在 ASP.NET 回发时执行?(来自更新面板)

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(InitAccordion);
function InitAccordion(){       
   $('#accordion').accordion();}

这将适用于回发和异步回发在由于同步或异步回发而刷新页面上的所有内容后引发。http://msdn.microsoft.com/en-us/library/bb397523(v=vs.100).aspx

最新更新