如何在AJAX响应完成后触发函数?
在更改下拉列表时,会调用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;
}
}
我该怎么做?我已尝试ajaxComplete
和ajaxStop
,但我无法触发它们。
答案 0 :(得分:0)
我相信你想要的东西: response = xmlHttpRequest.responseText;
如果你制作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)
});