2013-02-10 56 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