ajaxComplete - 如何调用/触发?

时间:2013-02-10 16:03:47

标签: javascript jquery ajax

如何在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;
  }
}

我该怎么做?我已尝试ajaxCompleteajaxStop,但我无法触发它们。

1 个答案:

答案 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)
});