萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp.net編程 >> Asp.net中Ajax與JQuery的ready函數沖突怎麼辦

Asp.net中Ajax與JQuery的ready函數沖突怎麼辦

   Asp.net Ajax和Asp.net結合得很完美,發現不夠用的時候,難免想到了Jquery。一般Jquery和Asp.net Ajax這兩樣東西結合使用也常見,如果處理好的話,並不會沖突。但最近發現Jquery的ready()函數在PostBack回來的時候,ready裡執行的動作竟然無效了,第一印象:會不會Asp.net Ajax和Jqueryd的ready沖突了,然後去掉Asp.net Ajax腳本的引用,果然一切正常了。思前思後,最後給Asp.net Ajax ScriptManager添加一個add_endRequest(),Jquery的ready終於恢復正常了

 代碼如下  

<script type="text/javascript">
    Sys.WebForms.PageRequestManager.getInstance()
    .add_endRequest(EndRequestHandler);
    
    function EndRequestHandler(sender, args) {
        if (args.get_error() == undefined) {
            PageInit();
        }
    }

    function PageInit() {
        $(document).ready(function() {
            //TODO 
        });
    }

    PageInit(); 
 </script>

  其中,添加上這段代碼,還有一些注意的事項,如果這段腳本放置在head裡,會發生一個錯誤,提示Sys對象undefined,因為Asp.net Ajax的ScriptManager,還沒有狀態完,Sys對象肯定找不到,這時把這腳本放置在body末尾,一切都正常了。

copyright © 萬盛學電腦網 all rights reserved