ホームページ >ウェブフロントエンド >jsチュートリアル >jQueryでコールバック関数をカスタマイズする方法

jQueryでコールバック関数をカスタマイズする方法

伊谢尔伦
伊谢尔伦オリジナル
2017-06-16 14:59:592277ブラウズ

まず、「コールバック」を直訳すると、関数が呼び出される仕組みであることがわかります。

名詞に出会ったら、まずBaiduやGoogleで検索してみるとよいでしょう。公式の説明はどうなっていますか

以下はウィキペディアからのコールバックの定義です:

コールバックは、都合の良いときに引数をコールバック(実行)することが期待される他のコードに引数として渡される実行可能コードの一部です時間

厳密な翻訳: コールバック関数が別の関数への引数として使用されます 実行可能コード セグメント このコード セグメントは都合の良い時間に実行されます

一般的な説明: 関数 f2 を関数 f1 にパラメーターとして渡し、関数 f2 を実行します。 f1 での適切な時間 (f1、f2 を意味する以下のすべての例を使用します)

したがって、このようなコールバック関数パターンを取得できます

function f1(f2) {    //f1要执行的一些代码
    if (f2 && typeof(f2) === "function") { //对f2做判断是否存在并且是一个函数        f2();
    }
}

ここで、2 つのパラメーターの f2 は関数 f2 へのポインターであることに注意してください。そのため、f2 の後に括弧を追加することはできません

そして、f1 の中に f2 を追加する必要があります。この時点で f2 を呼び出して実行する必要があるため、その後に括弧が必要です。そのため、f2() を記述する必要があります

このモードをインスタンス化して、実行結果を確認しましょう

声明函数function f1(f2) {
alert("我是f1");if (f2 && typeof(f2) === "function") { //写上判断是个好习惯f2()
}
}
执行
f1(function() {
alert("我是f2");
})
结果://"我是f1",“我是f2”

関数の実行プロセス全体を見てみましょう。 f1(function( ){alert("I am f2");}) を呼び出すとき、

は最初に匿名関数を f1() に渡します。宣言された関数のパラメータ f2 を上から順に実行し、次に f2(); を実行します

コールバックの定義を見てみるとf1 自体の実行フローに影響を与えることなく、実行したいときにコールバックを実行させることができます

しかし、カプセル化と美しさのために、ほとんどの人はこのように書きます

function f1(f2) {    alert("我是f1");    if (f2 && typeof(f2) === "function") {  
        f2()
    }    alert("我又是f1 哈哈");
}
执行
f1(function(){
    alert("我是f2");
})//结果:我是f1 ,我是f2,我又是1 哈哈

実際、コールバックはfunction はそれほど複雑ではありません。js では、function は通常のパラメータとして扱うことができます。後ろに()が付いている限り、この関数を呼び出すことを意味します。

下の例を見てください

function f1(f2){ 
if (f2 && typeof(f2) === "function") {  
settimeOut(function(){f2()},1000) ;//f1执行1s后f2执行}
}function f2(){/**/}
f1(f2);

実際、関数が定義されるたびに、関数がコンテナのスタックに追加され、インデックスが関数名であることも上記の例からわかります。デフォルトは window の下にあるため、そこに文字列をスローできます。また、window の下の文字列を介してこのコールバック関数を呼び出すこともできます。

パラメータがある場合は、上記の方法を使用できます。

例えば、jQueryでの例

$(function(){
    function funcname(param){
        //do something
         
        //callback
        param.callback();    
    }
 
    //调用
    funcname({
        callback:function(){
            alert('callback do'); 
        }   
    });      
});

#divを素早く非表示にし、徐々に#div2を表示します。 jQueryには多数のコールバック関数があります

そして、コールバックを管理する専用のメソッドがあります

$("#div1").fadeOut("fast",functin(){
    $("#div2").fadeIn("slow");
})

最後に、プロジェクトで最近使用したコールバックを見てみましょう

ハイブリッド アプリの機能は、おそらく ios にリクエストを送信し、ios が json データを返し、返されたデータを解析して に挿入することです。ウェブページ

rree

以上がjQueryでコールバック関数をカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。