2012-12-13 47 views
3

我发射了一个jQuery手风琴有:jQuery的手风琴不重新启动

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

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

对不起,我不是asp.NET的专家,也抱歉,我不能给你一个链接的例子,这是因为它是一个密码保护的应用程序。

谢谢。

+2

你使用更新面板在你的项目中? –

+0

是的,据我所知。 –

回答

5

您需要后回来的UpdatePanel的功能后重新initlaize手风琴:

<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 UpdatePanel in Gridview Jquery DatePicker
ASP.Net : Need to run javascript on update panel load completed
How do you get client-side script to execute on an ASP.NET postback? (from an UpdatePanel)

+1

谢谢。我最终选择了这个选项,并且它很有用。 –

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

这将用于回传工作,asyncpostback 复活以后,网页上的所有内容被刷新,可以是同步或异步回发的结果。 http://msdn.microsoft.com/en-us/library/bb397523(v=vs.100).aspx

+0

我希望这可以帮助你 –

+0

感谢您的帮助。 –