jQuery AJAX コールバック関数、これは問題を指します_javascript のヒント
たとえば、this を含むオブジェクトがグローバル スコープで呼び出された場合、現在のオブジェクトの this は window を指します。 this のポイントを自分の希望に合わせるために、JavaScript では this のポイントを変更するメソッドが 2 つ用意されています。それは call と apply です。もちろん、これを実現するためにクロージャを使用するメソッドもあります。この記事では、例を挙げてこれらの問題を説明します。
まずデモ コードを見てみましょう。このコードはデモのみを目的としており、実用的な意味はありません。
//A ソケット接続実質的な意味はありません Object
varソケット =
{
connect: function(host, port)
{
alert('接続中のソケットサーバー,host:' host ',port:' port) ;
}
};
//connect メソッドも AJAX コールバック関数として呼び出されます
function classIm()
{
this.ホスト = '192.168.1.28 ';
this.port = '8080';
this.connect = function(data)
{
socket.connect(this.host, this.port);
};
}
//インスタント メッセージング クラスをインスタンス化します
var IM = new classIm();
//ここでは、ソケット接続を開くために、まず、ユーザーの WEB ログインが成功したことを WEB を通じて知る必要があります。
$.get('CheckWebLogin.aspx', IM.connect);
上記の例を実行すると、ポップアップ ホストとポートが表示されます。これは、コールバック関数の this が IM オブジェクトを指しているのではなく、jQuery の AJAX 設定オブジェクトである ajaxSettings を指しているためです。 jQuery 内部では、実行する受信コールバック関数の代わりに s.success が使用され、success の呼び出しオブジェクトは s です。これは、以下の ajaxSettings オブジェクトの略称です。
ajaxSettings:
{
url: location.href、
global: true、
type: "GET"、
contentType: "application/x-www-form -urlencoded",
processData: true,
async: true
}
これを証明するには、次のようにコードを変更してテストします。URL が表示されます。 , global、type、contentType、その他のオブジェクトの属性名:
this .connect = function(data)
{
for (this の var key)
{
alert(key);
}
}
問題を理解したので、それを解決する方法を見つけてみましょう。実際、私たちの目的は、AJAX コールバック関数コードの this が、socket.connect(this.host, this.port) が classIm のインスタンス オブジェクト IM を指していること、または、socket.connect() メソッドが正しい値を取得できることを期待することです。パラメータ値。 AJAX コールバック関数の期待どおりの実行結果を取得するために、次のメソッドを分析しました。
メソッド 1
オブジェクトの正しい参照を、代わりに直接渡します。このポインタ、またはオブジェクト転送と呼ばれます。これは最も一般的なアプローチです。つまり、クラスがインスタンス化されるときに変数を使用して現在のオブジェクトへの参照を保存し、この変数を使用する代わりに後続のメソッドでこの変数を直接使用します。注: このメソッドは、実際にこれが指すものを変更するわけではありません。デモ コードは次のとおりです。前後の 2 つのコードの違いにも注目してください。コードの異なる部分も強調表示します。
varソケット =
{
connect: function(host, port)
{
alert('接続中のソケットサーバー,host:' host ',port:' port);
}
}; )
{
var self = this;
this.host = '192.168.1.28';
this.connect = function(data); >{
socket.connect(self.host, self.port);
}
var IM = new classIm(); 、IM.connect);
方法 2
コードをコピー

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQuery で PUT リクエストを送信する方法は、他のタイプのリクエストを送信する方法と似ていますが、いくつかの詳細とパラメータ設定に注意する必要があります。 PUT リクエストは通常、データベース内のデータの更新やサーバー上のファイルの更新など、リソースを更新するために使用されます。以下は、jQuery の PUT リクエスト メソッドを使用した具体的なコード例です。まず、jQuery ライブラリ ファイルが含まれていることを確認してから、$.ajax({u

PHP と Ajax を使用してオートコンプリート候補エンジンを構築します。 サーバー側スクリプト: Ajax リクエストを処理し、候補を返します (autocomplete.php)。クライアント スクリプト: Ajax リクエストを送信し、提案を表示します (autocomplete.js)。実際のケース: HTML ページにスクリプトを組み込み、検索入力要素の識別子を指定します。

Ajax を使用して PHP メソッドから変数を取得することは、Web 開発では一般的なシナリオであり、Ajax を使用すると、データを更新せずにページを動的に取得できます。この記事では、Ajax を使用して PHP メソッドから変数を取得する方法と、具体的なコード例を紹介します。まず、Ajax リクエストを処理し、必要な変数を返すための PHP ファイルを作成する必要があります。以下は、単純な PHP ファイル getData.php のサンプル コードです。

タイトル: jQuery ヒント: ページ上のすべての a タグのテキストをすばやく変更する Web 開発では、ページ上の要素を変更したり操作したりする必要がよくあります。 jQuery を使用する場合、ページ内のすべての a タグのテキスト コンテンツを一度に変更する必要がある場合があります。これにより、時間と労力を節約できます。以下では、jQuery を使用してページ上のすべての a タグのテキストをすばやく変更する方法と、具体的なコード例を紹介します。まず、jQuery ライブラリ ファイルを導入し、次のコードがページに導入されていることを確認する必要があります: <

タイトル: jQuery を使用して、すべての a タグのテキスト コンテンツを変更します。 jQuery は、DOM 操作を処理するために広く使用されている人気のある JavaScript ライブラリです。 Web 開発では、ページ上のリンク タグ (タグ) のテキスト コンテンツを変更する必要が生じることがよくあります。この記事では、この目標を達成するために jQuery を使用する方法を説明し、具体的なコード例を示します。まず、jQuery ライブラリをページに導入する必要があります。 HTML ファイルに次のコードを追加します。

Ajax (非同期 JavaScript および XML) を使用すると、ページをリロードせずに動的コンテンツを追加できます。 PHP と Ajax を使用すると、製品リストを動的にロードできます。HTML はコンテナ要素を含むページを作成し、Ajax リクエストはロード後に要素にデータを追加します。 JavaScript は Ajax を使用して XMLHttpRequest を通じてサーバーにリクエストを送信し、サーバーから JSON 形式で商品データを取得します。 PHP は MySQL を使用してデータベースから製品データをクエリし、それを JSON 形式にエンコードします。 JavaScript は JSON データを解析し、ページ コンテナーに表示します。ボタンをクリックすると、製品リストをロードするための Ajax リクエストがトリガーされます。

jQuery は、Web ページでの DOM 操作やイベント処理を処理するために広く使用されている人気のある JavaScript ライブラリです。 jQueryではeq()メソッドを利用して指定したインデックス位置の要素を選択しますが、具体的な使い方と応用シーンは以下の通りです。 jQuery では、 eq() メソッドは、指定されたインデックス位置にある要素を選択します。インデックス位置は 0 からカウントされます。つまり、最初の要素のインデックスは 0、2 番目の要素のインデックスは 1 などとなります。 eq() メソッドの構文は次のとおりです。 $("s

Golang でデータベース コールバック関数を使用すると、次のことを実現できます。 指定されたデータベース操作が完了した後にカスタム コードを実行します。追加のコードを記述せずに、個別の関数を通じてカスタム動作を追加します。コールバック関数は、挿入、更新、削除、クエリ操作に使用できます。コールバック関数を使用するには、sql.Exec、sql.QueryRow、または sql.Query 関数を使用する必要があります。
