var url="ajaxdemo.ASP";
var paras = "" ;
var myAjax = new Ajax.Request(
url,
{
method: 'post',
parameters: paras,
onComplete: showResponse
});
}
function showResponse(originalRequest){
var html = originalRequest.responseText;
alert(html);
}
這是應用 prototype.js 后最常看見的ajax代碼,由于 showResponse 不能直接帶參數,在處理回調函數時有時候比較麻煩,比如要把返回的html值動態插入到某個元素里面去。今天終于想到了一種方法來解決這個問題:
function demo(){
var url="ajaxdemo.ASP";
var paras = "" ;
var myAjax = new Ajax.Request(
url,
{
method: 'post',
parameters: paras,
onComplete: function(originalRequest){showResponse(originalRequest,elemID)}
});
}
function showResponse(originalRequest,elemID){
var html = originalRequest.responseText;
$(elemID).innerHTML = html;
}
匿名函數這時充當了回調函數,而showResponse則變成一個普通方法了。變換了概念,問題就順利解決。
解決了這個問題,還可以把這兩個函數封裝為一個函數:
function demo(url,paras,updateElemID){
var myAjax = new Ajax.Request(
url,
{
method: 'post',
parameters: paras,
onComplete: function(originalRequest){showResponse(originalRequest,updateElemID)}
});
}
function showResponse(originalRequest,elemID){
var html = originalRequest.responseText;
$(elemID).innerHTML = html;
}
只需要調用 demo(url,paras,updateElemID) 就能完成ajax的功能。爽。如果參數再擴展一下,增加一些動作函數,就不止是update某個元素的innerHTML這么簡單了。
JavaScript技術:讓回調函數 showResponse 也帶上參數的代碼,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。