2013-10-16 89 views
0

在學習JQuery時,我遇到了知道AJAX的必要性。使用Python的SimpleHTTPServer我在本地進行實驗。我想在啓動AJAX請求時以及完成時在控制檯中記錄日誌。更確切地說,我有一個按鈕,有一個onclick動作:JQuery的加載和綁定功能AjaxStart和AjaxComplete

function ddd_ajax(){ 
    $("#ajax_content").load("ajax_load.html") 
} 

...和一個div指示啓動一個AJAX請求時加載:

$("#indic_loading").bind('ajaxSend', function(){ 
    $(this).show(); 
    console.log("Ajax START!"); 
    alert("Ajax START!"); 
}).bind('ajaxComplete', function(){ 
    $(this).hide(); 
    console.log("Ajax Complete!"); 
    alert("Ajax Complete!"); 
}) 

遺憾的沒有日誌和警報兩者。也許load()不會產生任何AJAX O_o? 任何幫助表示讚賞。

回答

0

docs

在jQuery 1.8的,所述.ajaxStart()方法應當僅被附接到 文檔。

例子:

$(document).on('ajaxSend', function(){ 
    $("#indic_loading").show(); 
    console.log("Ajax START!"); 
    alert("Ajax START!"); 
}).on('ajaxComplete', function(){ 
    $("#indic_loading").hide(); 
    console.log("Ajax Complete!"); 
    alert("Ajax Complete!"); 
}); 

這樣做的原因是,ajaxStartajaxComplete是所有AJAX通用的事件,發生在頁面上,他們是不綁定到任何特定的元素,因爲我可以寫的東西像:

// No elements specified 
$.ajax("mypage.html", { 
    data: { param: 1 } 
}); 

而是結合全球的事件,你可以只註冊一個回調到.load事件:

function ddd_ajax(){ 
    console.log("AJAX Started"); 
    $("#ajax_content").load("ajax_load.html", function() { 
     console.log("AJAX Complete"); 
    }) 
}