2009-11-17 67 views
3

我搖javascipt的這個位在我的網頁<head>部分:

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

這個偉大的工程第一次加載頁面;但是,當我單擊位於<asp:updatepanel>內的<asp:button>時,頁面會部分刷新,但不會再次調用$(document).ready

這很重要,因爲$(document).ready部分的這個Javascript正在摺疊並在頁面上添加一個「readmore」選項到pararaphs列表(或者dl的class =「expander」),其中大部分應該被摺疊默認。

回答

8

您將需要向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> 
+0

優秀,部份因爲我需要exacly工作。 – Nate 2009-11-17 17:32:16

+0

我一直在尋找這麼簡單的解決方案,現在已經很長時間了。我迄今爲止發現的最簡單的解決方案。 – iamwonder 2015-01-13 22:35:51

相關問題