<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        jQueryAjax中的事件詳細介紹_jquery

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 21:37:11
        文檔

        jQueryAjax中的事件詳細介紹_jquery

        jQueryAjax中的事件詳細介紹_jquery:Ajax會觸發(fā)很多事件。 有兩種事件,一種是局部事件,一種是全局事件: 局部事件:通過$.ajax來調(diào)用并且分配。 代碼如下: $.ajax({ beforeSend: function(){ // Handle the beforeSend event }, complete: function(){ /
        推薦度:
        導讀jQueryAjax中的事件詳細介紹_jquery:Ajax會觸發(fā)很多事件。 有兩種事件,一種是局部事件,一種是全局事件: 局部事件:通過$.ajax來調(diào)用并且分配。 代碼如下: $.ajax({ beforeSend: function(){ // Handle the beforeSend event }, complete: function(){ /

        Ajax會觸發(fā)很多事件。
        有兩種事件,一種是局部事件,一種是全局事件:
        局部事件:通過$.ajax來調(diào)用并且分配。
        代碼如下:
        $.ajax({
        beforeSend: function(){
        // Handle the beforeSend event
        },
        complete: function(){
        // Handle the complete event
        }
        // ...
        });

        全局事件,可以用bind來綁定,用unbind來取消綁定。這個跟click/mousedown/keyup等事件類似。但他可以傳遞到每一個DOM元素上。
        代碼如下:
        $("#loading").bind("ajaxSend", function(){ //使用bind
        $(this).show();
        }).ajaxComplete(function(){ //直接使用ajaxComplete
        $(this).hide();
        });

        當然,你某一個Ajax請求不希望產(chǎn)生全局的事件,則可以設置global:false
        代碼如下:
        $.ajax({
        url: "test.html",
        global: false,
        // ...
        });

        事件的順序如下:

        ajaxStart 全局事件
        開始新的Ajax請求,并且此時沒有其他ajax請求正在進行。
        beforeSend 局部事件
        當一個Ajax請求開始時觸發(fā)。如果需要,你可以在這里設置XHR對象。
        ajaxSend 全局事件
        請求開始前觸發(fā)的全局事件
        success 局部事件
        請求成功時觸發(fā)。即服務器沒有返回錯誤,返回的數(shù)據(jù)也沒有錯誤。
        ajaxSuccess 全局事件
        全局的請求成功
        error 局部事件
        僅當發(fā)生錯誤時觸發(fā)。你無法同時執(zhí)行success和error兩個回調(diào)函數(shù)。
        ajaxError 全局事件
        全局的發(fā)生錯誤時觸發(fā)
        complete 局部事件
        不管你請求成功還是失敗,即便是同步請求,你都能在請求完成時觸發(fā)這個事件。
        ajaxComplete 全局事件
        全局的請求完成時觸發(fā)
        ajaxStop 全局事件
        當沒有Ajax正在進行中的時候,觸發(fā)。

        局部事件回調(diào)的參數(shù)在文檔中寫的很清楚了,這里就不累述了。

        全局事件中,除了ajaxStart和ajaxStop之外,其他的事件都有3個參數(shù)
        event, XMLHttpRequest, ajaxOptions
        第一個是事件,第二個是XHR對象,第三個參數(shù)最有用,是當時調(diào)用這個ajax的時候的參數(shù)。
        對于ajaxError,還有第四個參數(shù)thrownError,只有當異常發(fā)生時才會被傳遞。
        我們可以利用ajaxOptions來寫一個全局的ajax事件。
        比如
        代碼如下:
        $("#msg").beforeSend(function(e,xhr,o) {
        $(this).html("正在請求"+o.url);
        }).ajaxSuccess(function(e,xhr,o) {
        $(this).html(o.url+"請求成功");
        }).ajaxError(function(e,xhr,o) {
        $(this).html(o.url+"請求失敗");
        });

        對于這個例子,
        這樣我們就可以很方便的全局地在某個地方顯示當前的ajax狀態(tài)。
        當然,之前說了,第三個參數(shù)實際上是傳遞給ajax的參數(shù)。get/post/load/getScript/getJSON等方法本質(zhì)上都是調(diào)用ajax方法的,所以ajaxOptions.url屬性總是有效的。

        還有更豐富的例子。
        如果你用ajax調(diào)用,還可以傳遞自定義參數(shù)。下面的例子我就自定義了一個msg參數(shù)給了ajax調(diào)用
        代碼如下:
        //自定義參數(shù)msg
        $.ajax({url:"test1.html",type:"get",msg:"頁面一"});
        $.ajax({url:"test2.html",type:"get",msg:"頁面二"});
        $.ajax({url:"test3.html",type:"get",msg:"頁面三"});
        $.ajax({url:"test4.html",type:"get",msg:"頁面四"});

        //這里就能獲取到自定義參數(shù)msg。
        //這可以用來區(qū)別對待不同的ajax請求。
        $("#msg").beforeSend(function(e,xhr,o) {
        $(this).html("正在請求"+o.msg);
        }).ajaxSuccess(function(e,xhr,o) {
        $(this).html(o.msg+"請求成功");
        }).ajaxError(function(e,xhr,o) {
        $(this).html(o.msg+"請求失敗");
        });

        最后對于load方法,還有話說。

        其他的簡易ajax方法,比如get,post,getJSON等,他們的回調(diào)函數(shù)都是設置了success回調(diào)。

        而只有l(wèi)oad設置的其實是complete回調(diào)。

        所以,load里設置的回調(diào)函數(shù)的參數(shù)應該有2個。

        XMLHttpRequest和textStatus
        但實際上也并非如此。
        load的回調(diào)有三個參數(shù)
        XMLHttpRequest.responseText, textStatus, XMLHttpRequest
        所以,你可以在load的回調(diào)里
        通過textStatus==”success”或者textStatus==”error”來判斷是否調(diào)用成功。
        或者用XMLHttpRequest.status屬性判斷是200還是404或者其他的。

        這點上,我認為比普通的get/post等方法更先進。如果要單數(shù)設置每get的error是不可能的。但是設置一個全局的ajaxError其實也是不錯的選擇。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        jQueryAjax中的事件詳細介紹_jquery

        jQueryAjax中的事件詳細介紹_jquery:Ajax會觸發(fā)很多事件。 有兩種事件,一種是局部事件,一種是全局事件: 局部事件:通過$.ajax來調(diào)用并且分配。 代碼如下: $.ajax({ beforeSend: function(){ // Handle the beforeSend event }, complete: function(){ /
        推薦度:
        標簽: 事件 的事件 ajax
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲欧洲无卡二区视頻| 久久狠狠高潮亚洲精品 | 亚洲youwu永久无码精品| 国产卡二卡三卡四卡免费网址| 久久亚洲日韩看片无码| 18禁黄网站禁片免费观看不卡| 亚洲国产精品网站久久| 歪歪漫画在线观看官网免费阅读| 亚洲日韩av无码中文| 国产成人免费a在线资源| 牛牛在线精品观看免费正| 99久久国产亚洲综合精品| 免费看国产精品3a黄的视频| 四虎必出精品亚洲高清| 国产又粗又猛又爽又黄的免费视频 | 亚洲精品国产免费| 亚洲国产精华液2020| 亚洲国产婷婷综合在线精品| 西西人体免费视频| 日本一道一区二区免费看| 男男黄GAY片免费网站WWW| 亚洲中文字幕日产乱码高清app| 无码日韩精品一区二区三区免费 | 亚洲国产精品免费在线观看| 毛片免费视频观看| 日韩毛片免费一二三| 亚洲精品色午夜无码专区日韩| 最近中文字幕国语免费完整 | 亚洲日韩中文字幕天堂不卡| 国产资源免费观看| 国产亚洲精品免费视频播放 | 男女男精品网站免费观看| 国产成人精品日本亚洲| 久久精品网站免费观看| 一级女人18片毛片免费视频| 亚洲黄色高清视频| 免费在线观看理论片| 91人人区免费区人人| 国产午夜亚洲精品不卡| 亚洲avav天堂av在线不卡| 三年片免费高清版 |