2013-02-10 34 views
0

如何在AJAX響應完成時觸發一個函數?ajaxComplete - 如何調用/觸發?

在下拉manageImagesDynamicObjectDetails功能的改變被稱爲:

<select id="imageComponentSelection" name="imageComponentSelection" onchange="manageImagesDynamicObjectDetails()"> 

此功能通過與此相關的AJAX調用我的makeRequests函數變量。

function manageImagesDynamicObjectDetails(){ 
    var sendContent = "selection=".concat(document.getElementById('imageComponentSelection').value); 
    var fileName = "RetrieveObjectsInformation"; 
    var elementId = "objectData"; 
    if(sendContent != "Select a class to view components"){ 
    makeRequest(fileName,sendContent,elementId); 
    } 
} 

makeRequest是一個將被用於所有Ajax調用,並處理他們適當的功能。

function makeRequest(fileName,sendContent,elementId) { 
var xmlHttpRequest = getXMLHttpRequest(); 
xmlHttpRequest.onreadystatechange = getReadyStateHandler(xmlHttpRequest,elementId); 
xmlHttpRequest.open("POST", fileName, true); 
xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
xmlHttpRequest.send(sendContent); 
} 

當speicif AJAX調用完成時,我想調用resizeObjectList函數。

function resizeObjectList(){ 
    var windowHeight = $('#contentWrapper').height(); 
    var newObjectListHeight = windowHeight - 53 - 20 - 20 - 60; 
    var element = document.getElementById("componentObjectList"); 
    if (typeof(element) != 'undefined' && element != null){ 
    document.getElementById("componentObjectList").style.height = newObjectListHeight; 
    } 
} 

我該怎麼做?我試過ajaxCompleteajaxStop,但我無法讓他們觸發。

回答

0

我相信你想要的東西像: response = xmlHttpRequest.responseText;

bute上述作品,如果你使ajax異步。閱讀:http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

,如果你使用jQuery的,它使AJAX很多更簡單:http://api.jquery.com/jQuery.ajax/

這裏有一個例子:

$.ajax({ 
    url: "http://fiddle.jshell.net/favicon.png", 
    type: "GET" 
    data: "key0=val0&key1-val1" 
}).done(function(data) { 
    alert(data) 
}); 
+0

我如何實現,在我的情況我不清楚。 – Colin747 2013-02-10 16:09:11

+0

我推薦閱讀鏈接,我也粘貼在我的回覆中,以更好地理解jquery和ajax。這將是你最好的朋友。 – Tucker 2013-02-10 16:11:59

+0

我已經閱讀過該頁面,但我沒有找到太多幫助。 – Colin747 2013-02-10 16:15:16