ホームページ >ウェブフロントエンド >jsチュートリアル >Ajaxコールバック関数にパラメータを渡す正しい方法
この記事では、ajax コールバック関数の正しいパラメーターの受け渡し方法を主に紹介します。必要な友達はそれを参照してください。友達は間違いを書くことに慣れています。
Attribute メソッドはパラメータを取ることができます:
function ClassX(name) { this.name = name; ClassX.prototype.show = function (param) { alert(this.name + " " + param); }; } var o = new ClassX("name"); o.show("param");//name param
ただし、参照は関数シグネチャで直接定義されていますが、 o.show('param') がそれ自体で呼び出されず、他の関数コールバックを介して渡された場合は、パラメータを取得できない可能性があります。 ajax
request.onreadystatechange=function(param){...}
またはrequest.onreadystatechange =callBack;function callBack(param) を使用する場合など、このメソッドを呼び出すときに他の人がこのパラメータを渡さない可能性があるため、機能します。 ){...}
は、現時点では ajax が param パラメーターをまったく渡さないため、使用するのは簡単ではありません。 正しい方法は次のとおりです。
//request.onreadystatechange = orgEval;//错误作法 //request.onreadystatechange = function (request, pOrgName) {//错误作法 // orgEval(request, pOrgName); //}; //... request.onreadystatechange = function () {//正确作法 orgEval(request, pOrgName);//在匿名函数内调用回调实现,并直接传入参数,这里用到了JavaScript的闭包性质 }; //... function orgEval(req, orgName){ //... }
この方法は、匿名関数のコールバック実装関数で呼び出します。 、パラメータを直接渡します。
ajax は onreadystatechange のコールバック関数にパラメーターを渡しますここ数日、ajax を学習し始めましたが、テスト ページを作成していたときに、XMLHttpRequest.onreadystatechange のコールバック関数にパラメーターを渡す必要がありました。 Baidu を検索したところ、このことについて多くの人が話していることがわかりました。見つかったメソッドはおそらく次のようなものです:
xmlHttp.onreadystatechange=function(){callback(a,b);};
後、自分で方法を発見しました。方法を知っている人はたくさんいると思いますが、Baiduでは見つけられなかったので、ここに書き留めて宣伝します。
xmlHttp.a=a; xmlHttp.b=b; xmlHttp.onreadystatechange=callback; . . function callback() { if(this.readyState==4) { a=this.a; b=this.b; . } }
つまり、xmlHttp オブジェクトに 2 つの属性を追加し、これを直接使用してコールバック関数でそれらの 2 つの属性を呼び出します。
さらに、私自身の経験について話させてください。最初は、xmlHttp をグローバル変数として記述するのが最善でしたが、一部のリクエストは目的を達成できませんでした。後で、xmlHttp が関数内に記述されていることがわかりました。その関数の実行が終了すると、xmlHttp のライフ サイクルも終了しました。このようにして、一部のリクエストはライフサイクルの終了前に実装され、一部のリクエストは消滅します。
以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
Ajax の get および post リクエストの概要 XML ドキュメントを Ajax で走査する方法について以上がAjaxコールバック関数にパラメータを渡す正しい方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。