3

私は現在 CodeSchool.com を通じて jQuery を学んでおり、彼らはこれを行う方が良いと述べました:

$(document).ready(function() {
    $(".exampleclass").on('click', 'button', function() {
        //some method
    });
});

それよりも:

$(document).ready(function() {
    $(".exampleclass button").on('click', function() {
        //some method
    });
});

しかし、彼らは理由を説明しませんでした。私が知る限り、この 2 つの間に違いはないようです。実際、後者の方が簡単だと思います。

最初のコード ブロックがより受け入れられる特定の理由はありますか? それはより速く実行されますか、それとも特別な利点がありますか?

4

1 に答える 1

4

主な違いは、前者はbuttonイベント委任モデルに従っているため、動的に追加された s を処理する機能も備えていることです。

機能的な違いは、前者buttonはスクリプト実行の時点で dom に存在する各要素にクリック ハンドラーをアタッチするのに対し、後者.exampleclassは要素内でイベントが発生し、それがexampleclass要素はイベント伝播を介して、この場合に渡されたセレクターに対してターゲット要素をテストしbutton、テストが成功した場合、登録されたハンドラーが呼び出されます

于 2013-08-21T03:22:53.067 に答える