Jqueryクリックイベントによる複数回の解決策


jqueryでイベントをバインドする場合、一般的に習慣的に匿名イベントをバインドするのが好きです.たとえば、次のようになります.




    $(function () {
        $(".dv").click(function () {//    
            alert("Hello World");
        });

        $(".dv").on("click",function () { //   
            alert("Hello World");
        });

        $(".dv").bind("click",function () {  //   
            alert("Hello World");
        })
    })





匿名のイベントなので、もしあなたがこのイベントをforループの中に置いていたら、このような匿名のイベントは重複して重畳され、重畳されるのは、匿名のイベントなので、この匿名のイベントに空間を繰り返し作成するので、重畳を招くので、この問題は後で解決することができます.
私が使っている解決策:このイベントをバインドする前に、私たちは先にバインドする前にバインドしたイベントを解除して、このように操作するたびに1つの時間しかないことを保証することができます.具体的な操作は、onでバインドしたイベントを使用すると、offでバインドを解除して、onでイベントをバインドします.コードは次のとおりです.
    $('.preset-list.fillL3').off('click', '.preset-list-button');
    $('.preset-list.fillL3').on('click', '.preset-list-button', function () {
        presetClick($(this)[0]);
    });

bindバインドを使用している場合はunbindでバインドを解除します.これにより、匿名イベントを使用している間にイベントがマウント要素に重複することを回避できます.