程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Asp.net中Ajax與JQuery的ready函數沖突怎麼辦

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

編輯:關於ASP.NET

       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末尾,一切都正常了。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved