我正在启动一个 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>
相对:
Gridview Jquery DatePicker 中的 Asp.Net UpdatePanel
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